From: "Денис Ягофаров" <denyago@rambler.ru> To: ALT Linux Sisyphus discussion list <sisyphus@lists.altlinux.org> Subject: [sisyphus] Redmine и кириллица в названиях файлов Date: Fri, 23 Jul 2010 18:00:18 +0300 Message-ID: <4C49AE82.1080304@rambler.ru> (raw) [-- 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
next reply other threads:[~2010-07-23 15:00 UTC|newest] Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top 2010-07-23 15:00 Денис Ягофаров [this message] 2010-07-23 15:05 ` Денис Ягофаров 2010-07-23 15:57 ` Alexey I. Froloff
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=4C49AE82.1080304@rambler.ru \ --to=denyago@rambler.ru \ --cc=sisyphus@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
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