[sisyphus] Redmine и кириллица в названиях файлов

Alexey I. Froloff raorn на altlinux.org
Пт Июл 23 15:57:01 UTC 2010


On Fri, Jul 23, 2010 at 06:00:18PM +0300, Денис Ягофаров wrote:
> Исследовав проблему, я определил, что во всём виновато 
> app/models/attachment.rb ,
> а именно в функции sanitize_filename строка:

> @filename = just_filename.gsub(/[^\w\.\-]/,'_')

> Если её земенить на:

> @filename = just_filename.force_encoding('UTF-8')

Ruby 1.9 прекрасно работает с юникодом.  Проблема в головах у
некоторых идиотов-рубероидов с семибитными мозгами:

$ LC_CTYPE=ru_RU.UTF-8 ruby -e 'puts "a,п╟,b,п╠,c,п╡".gsub(/[^\w]/, "")'
abc
$ LC_CTYPE=ru_RU.UTF-8 ruby -e 'puts "a,п╟,b,п╠,c,п╡".gsub(/[^[:word:]]/, "")'
aп╟bп╠cп╡

Т.е. меняем \w (который на самом деле [A-Za-z0-9_]) на [:word:]
(который word chars с учётом локали).

P.S. Извините за пяпя, я from the past и живу в koi8-r ;-)

-- 
Regards,    --
Sir Raorn.   --- http://thousandsofhate.blogspot.com/
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20100723/6d08f5eb/attachment.bin>


Подробная информация о списке рассылки Sisyphus