* [sisyphus] Redmine и кириллица в названиях файлов
@ 2010-07-23 15:00 Денис Ягофаров
2010-07-23 15:05 ` Денис Ягофаров
2010-07-23 15:57 ` Alexey I. Froloff
0 siblings, 2 replies; 3+ messages in thread
From: Денис Ягофаров @ 2010-07-23 15:00 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
[-- Attachment #1: Type: text/plain, Size: 2594 bytes --]
Доброго времени суток.
Продолжая налаживать у себя redmine, столкнулся с досадной фичей:
если прикреплять куда-либо файлы с кириллицей в названии (проба.расш)
то все не ASCII буквенные символы переименовываются в "_" (
__________.________ </attachments/12/____________.________>).
Это, для русскоговорящего человека неприятно. (баг тут -
http://www.redmine.org/issues/4324)
Исследовав проблему, я определил, что во всём виновато
app/models/attachment.rb ,
а именно в функции sanitize_filename строка:
@filename = just_filename.gsub(/[^\w\.\-]/,'_')
Если её земенить на:
@filename = just_filename.force_encoding('UTF-8')
, то руссике имена отлично работают, но безопасность должна падать ниже
плинтуса,
т.к. злоумышленник может загрузить файл с хитрым названием и не
буквенными символами.
( http://guides.rubyonrails.org/security.html : 4.2 File Uploads)
В свою очередь, можно было бы заставить ruby работать с UTF8. Про это
рассказывается тут:
http://stackoverflow.com/questions/1627767/rubys-stringgsub-unicode-and-non-word-characters
Но, у меня не получилось... Наверно, это связано с ruby:
$ irb -U
irb(main):001:0> my_str = "Quística."
=> "Quпробаstica."
irb(main):002:0> processed = my_str.gsub(/\W/,'')
=> "Qustica"
$ irb -Ku
/usr/share/ruby/1.9/irb/init.rb:199:in `parse_opts': Unrecognized
switch: -Ku (IRB::UnrecognizedSwitch)
from /usr/share/ruby/1.9/irb/init.rb:18:in `setup'
from /usr/share/ruby/1.9/irb.rb:53:in `start'
from /usr/bin/irb:12:in `<main>'
$ ruby -Ku /tmp/test.rb
Qustica
$ cat /tmp/test.rb
my_str = "Quпробаstica."
processed = my_str.gsub(/\W/,'')
print processed
Возможно, кто-то сможет подсказать как заставить регулярные выражения и
нашу ruby работать с unicode.
ruby-1.9.1-alt1.r26040.1
П.С. До кучи: кто-то проверял добавление файлов из писем? Тут
рассмотрена эта проблема:
http://redmine.net.ua/forum/index.php?topic=114.0
[-- Attachment #2: denyago.vcf --]
[-- Type: text/x-vcard, Size: 385 bytes --]
begin:vcard
fn:Denis Timurovich Yagofarov
n:Yagofarov;Denis Timurovich
org:ITGIS NASU
adr:room 615;;Chokolovski blvdr., 13;Kiev;;03151;Ukraine
email;internet:denyago@rambler.ru
title:system administrator
tel;work:80445201209
tel;cell:80662933760
note;quoted-printable:xmmp: denyago@gmail.com=0D=0A=
xmmp: diyago@jabber.te.ua
x-mozilla-html:FALSE
version:2.1
end:vcard
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [sisyphus] Redmine и кириллица в названиях файлов
2010-07-23 15:00 [sisyphus] Redmine и кириллица в названиях файлов Денис Ягофаров
@ 2010-07-23 15:05 ` Денис Ягофаров
2010-07-23 15:57 ` Alexey I. Froloff
1 sibling, 0 replies; 3+ messages in thread
From: Денис Ягофаров @ 2010-07-23 15:05 UTC (permalink / raw)
To: ALT Linux Sisyphus discussions
[-- Attachment #1: Type: text/plain, Size: 209 bytes --]
23.07.2010 18:00, Денис Ягофаров пишет:
> __________.________ </attachments/12/____________.________>
это thunderbird подвёл.... я хотел написать:
__________.________
[-- Attachment #2: denyago.vcf --]
[-- Type: text/x-vcard, Size: 385 bytes --]
begin:vcard
fn:Denis Timurovich Yagofarov
n:Yagofarov;Denis Timurovich
org:ITGIS NASU
adr:room 615;;Chokolovski blvdr., 13;Kiev;;03151;Ukraine
email;internet:denyago@rambler.ru
title:system administrator
tel;work:80445201209
tel;cell:80662933760
note;quoted-printable:xmmp: denyago@gmail.com=0D=0A=
xmmp: diyago@jabber.te.ua
x-mozilla-html:FALSE
version:2.1
end:vcard
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [sisyphus] Redmine и кириллица в названиях файлов
2010-07-23 15:00 [sisyphus] Redmine и кириллица в названиях файлов Денис Ягофаров
2010-07-23 15:05 ` Денис Ягофаров
@ 2010-07-23 15:57 ` Alexey I. Froloff
1 sibling, 0 replies; 3+ messages in thread
From: Alexey I. Froloff @ 2010-07-23 15:57 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
[-- Attachment #1: Type: text/plain, Size: 872 bytes --]
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/
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-07-23 15:57 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-23 15:00 [sisyphus] Redmine и кириллица в названиях файлов Денис Ягофаров
2010-07-23 15:05 ` Денис Ягофаров
2010-07-23 15:57 ` Alexey I. Froloff
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git