ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [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