From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00, DNS_FROM_OPENWHOIS, SPF_PASS autolearn=no version=3.2.5 Message-ID: <4C49AE82.1080304@rambler.ru> Date: Fri, 23 Jul 2010 18:00:18 +0300 From: =?UTF-8?B?0JTQtdC90LjRgSDQr9Cz0L7RhNCw0YDQvtCy?= User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8pre) Gecko/20100202 Lightning/1.0b1 Thunderbird/3.0.1 MIME-Version: 1.0 To: ALT Linux Sisyphus discussion list Content-Type: multipart/mixed; boundary="------------050900040009020301060405" Subject: [sisyphus] =?utf-8?b?UmVkbWluZSDQuCDQutC40YDQuNC70LvQuNGG0LAg0LIg?= =?utf-8?b?0L3QsNC30LLQsNC90LjRj9GFINGE0LDQudC70L7Qsg==?= X-BeenThere: sisyphus@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Sisyphus discussions List-Id: ALT Linux Sisyphus discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Jul 2010 15:00:24 -0000 Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --------------050900040009020301060405 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Доброго времени суток. Продолжая налаживать у себя redmine, столкнулся с досадной фичей: если прикреплять куда-либо файлы с кириллицей в названии (проба.расш) то все не ASCII буквенные символы переименовываются в "_" ( __________.________ ). Это, для русскоговорящего человека неприятно. (баг тут - 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 `
' $ 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 --------------050900040009020301060405 Content-Type: text/x-vcard; charset=utf-8; name="denyago.vcf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="denyago.vcf" YmVnaW46dmNhcmQNCmZuOkRlbmlzIFRpbXVyb3ZpY2ggWWFnb2Zhcm92DQpuOllhZ29mYXJv djtEZW5pcyBUaW11cm92aWNoDQpvcmc6SVRHSVMgTkFTVQ0KYWRyOnJvb20gNjE1OztDaG9r b2xvdnNraSBibHZkci4sIDEzO0tpZXY7OzAzMTUxO1VrcmFpbmUNCmVtYWlsO2ludGVybmV0 OmRlbnlhZ29AcmFtYmxlci5ydQ0KdGl0bGU6c3lzdGVtIGFkbWluaXN0cmF0b3INCnRlbDt3 b3JrOjgwNDQ1MjAxMjA5DQp0ZWw7Y2VsbDo4MDY2MjkzMzc2MA0Kbm90ZTtxdW90ZWQtcHJp bnRhYmxlOnhtbXA6IGRlbnlhZ29AZ21haWwuY29tPTBEPTBBPQ0KCXhtbXA6IGRpeWFnb0Bq YWJiZXIudGUudWENCngtbW96aWxsYS1odG1sOkZBTFNFDQp2ZXJzaW9uOjIuMQ0KZW5kOnZj YXJkDQoNCg== --------------050900040009020301060405--