@Linda-chan

Linda-chan

Линда Кайе
Linda-chan

Дата рождения: 01.11.1983

Тотальная неудачница и убийца жёстких дисков. Самая большая поклонница Ариэль. Член ордена Вселенского тормоза имени Осаки-сан. Любительница каваййных переднеприводных машинок. Суккуб на полставки. Когти прилагаются.

https://www.lindachan.net

10 я читаю 59 меня читают
15455 постов
26170 комментариев
Linda-chan
23 Jul 2015

Ruby хочет аргументы командной строки в UTF-8. Они там охренели что ли?

23 Jul 2015

Смотри на тэги делай выводы...

#vyqmf/3 в ответ на /1
23 Jul 2015

Linda-chan, Ну, авторы руби, кагбэ японцы, не? как им еще свою кану вводить, если не через utf-8?

#vyqmf/4 в ответ на /3
23 Jul 2015

Linda-chan, погоди, нанами шо, не умеет в utf-8?

#vyqmf/5 в ответ на /3
23 Jul 2015

Linda-chan, посмотрел в теги не нашел теги ретро и бред

#vyqmf/6 в ответ на /3
23 Jul 2015

В данном случае это такой же стандарт как красные мокасины, автоматы и заниженные Приоры в центре масквы.

#vyqmf/7 в ответ на /2
23 Jul 2015

Потому что есть только одна кодировка.

23 Jul 2015

Подсказка: в Windows есть юникодные программы и неюникодные.

#vyqmf/10 в ответ на /4
23 Jul 2015

Linda-chan, поставь PowerShell - он юникодный, в отличие от cmd.exe

#vyqmf/11 в ответ на /10
23 Jul 2015

Ладно, я поняла. Тут - место сбора идиотов.

#vyqmf/13 в ответ на /9
23 Jul 2015

Просто мс поддерживает вселенское ненужно.

#vyqmf/15 в ответ на /14
23 Jul 2015

Linda-chan, ОМГ. Топикстартер выбрала инструмент не подходящий для решения задачи в данных ей условиях.
Ей тут понамекали на это. вывод - все идиоты, одна ты такая вся красивая, на красной машинке

#vyqmf/16 в ответ на /13
23 Jul 2015

ridouchire, будем честны, некоторые cp1251 и cp866 нужны для некоторого специализированного софта который ровесник говну мамонта, а переписывать этот софт никто не будет.

#vyqmf/17 в ответ на /15
23 Jul 2015

Зачем продолжать писать новые средства с такими "стандартами"?

#vyqmf/19 в ответ на /17
23 Jul 2015

ridouchire, обратная совместимость, обычно старые стандарты выкорчевывают через несколько версий меняя постепенно всякоэ

#vyqmf/20 в ответ на /19
23 Jul 2015

Топикстартер выбрала программу, парсинг командной строки которой реализовали дегенераты, думающие, что существует только линупс. При чём сделали они это в Windows билде.

#vyqmf/21 в ответ на /16
23 Jul 2015

Нотис, ты дебил? Когда UTF-16 превратилась в cp866?

#vyqmf/23 в ответ на /17
23 Jul 2015

Linda-chan, лоооооооооооол кросплатформенность и опенсорс -не неслышали! Признай свою неправоту.

#vyqmf/24 в ответ на /21
23 Jul 2015

Linda-chan, Алсо, сильно сомневаюсь, что utf-8 захардкожена прямо в программе, скорее проблема в среде исполнения, то есть в интерпритаторе рубей

#vyqmf/25 в ответ на /21
23 Jul 2015

Алсо, давай название программы, ссылку, будем смотреть, чего у тебя там и как

#vyqmf/26 в ответ на /25
23 Jul 2015

Неправоту в чём? В том, что программа не в курсе, что WinAPI юникодный использует UTF-16? В том, что тысячи других кроссплатформенных программ не падают от того, что в командной строке что-то по-русски написали?

#vyqmf/30 в ответ на /24
23 Jul 2015

Linda-chan, Ой-вэй, второй раз говорю - бубунту на виртуалку. И будет тебе счасть. Реально, ну нахера жрать кактус?

#vyqmf/31 в ответ на /30
23 Jul 2015

Мне пофиг, где проблема. У меня ruby.exe не понимает аргумет "Файл.TXT".

#vyqmf/32 в ответ на /25
23 Jul 2015

У тебя забрало упало до того как ты начал читать пост? :}

#vyqmf/33 в ответ на /26
23 Jul 2015

Linda-chan, я уже запутался. то ты пишешь сайт, то жалуешься на какую-то программу, которая хочет аргументы в utf8.

#vyqmf/34 в ответ на /33
23 Jul 2015

Я как бы намекаю на то что... А впрочем пофиг.

#vyqmf/36 в ответ на /27
23 Jul 2015

Linda-chan, в том что кроссплатформенность предполагает выполнение во всех осях со своими костылями и таргет оси без костылей.

#vyqmf/38 в ответ на /30
23 Jul 2015

Linda-chan, ты от критики становишься агрессивной, прям как дедфуд

#vyqmf/39 в ответ на /36
23 Jul 2015

У тебя галюцинации. Тут нет ни кактусов, ни фиалок, ни даже берёз.

#vyqmf/40 в ответ на /31
23 Jul 2015

Linda-chan, тогда, что тебе мешает последовать совету?

#vyqmf/41 в ответ на /40
23 Jul 2015

Linda-chan, а ты не намекай, а прямо скажи, все вы бабы такие, только намеками и можете >_<

#vyqmf/44 в ответ на /36
23 Jul 2015

Предлагаю вашему вниманию пост. Вот он:

Ruby хочет аргументы командной строки в UTF-8. Они там охренели что ли?

К нему идут тэги такие как "Программы", "Ruby" и даже "Windows". Угадай, о какой программе идёт речь, и для какой ОСи она скомпилирована.

#vyqmf/45 в ответ на /34
23 Jul 2015

Дерево каталогов тоже переименовать?

#vyqmf/46 в ответ на /35
23 Jul 2015

Кроссплатформенность предполагает выполнение во всех поддерживаемых осях. А баги - это баги.

#vyqmf/47 в ответ на /38
23 Jul 2015

Linda-chan, а что мешает? алсо - виртуалка с убунтой. можно даже серверной.
Честно, быстрее будет

#vyqmf/48 в ответ на /46
23 Jul 2015

Я становлюсь агрессивной от идиотов, которые на полном серьёзе общаются с голосами в своей голове.

#vyqmf/49 в ответ на /39
23 Jul 2015

Linda-chan, Окай, ты нашла баг, напиши разработчику.
А задачу-то делать надо? вот и ставь убунту в виртуалку

#vyqmf/50 в ответ на /47
23 Jul 2015

Linda-chan, а, программа Ruby.exe? ну, отлично, я угадал, что это требование рантайма.

#vyqmf/52 в ответ на /45
23 Jul 2015

Linda-chan, тогда, как будешь решать задачу? без костылей-то?

#vyqmf/54 в ответ на /51
23 Jul 2015

Notis, которая? нанами, как любит обзывать семерку топикстартерша?

#vyqmf/55 в ответ на /53
23 Jul 2015

а хотя я понял. ДальСвязь тебе мешает поставить убунту за адекватное время

#vyqmf/56 в ответ на /54
23 Jul 2015

Окей. Зетс зе дил. Windows NT - юникодная система, API которой использует UTF-16. UTF-16, Карл! Это значит, что когда программа вызывает GetCommandLineW(), та возвращает ей строку, где каждый символ - два байта. И там нет никакого UTF-8.

#vyqmf/57 в ответ на /44
23 Jul 2015

Ты когда в магазин соберёшься, не забудь вертолёт заказать.

#vyqmf/58 в ответ на /48
23 Jul 2015

Linda-chan, а руби скомпиленные под NT хотят UTF-8. Ты попала, да

#vyqmf/59 в ответ на /57
23 Jul 2015

Linda-chan, алсо, в твоих терминах - мне доставляют на дом

#vyqmf/63 в ответ на /58
23 Jul 2015

Версия старая. Почему она старая - я уже писала ранее. Но для тебя сделаю исключение и расскажу. Программа привязана к C++ рантайму, который живёт в системном каталоге Windows переделывается в каждой новой версии Windows. Использовать этот рантайм нельзя. Авторы билда не в курсе.

#vyqmf/65 в ответ на /50
23 Jul 2015

Notis, тогда ткни ее, как сделать utf8, и мы вновь будем наслаждаться порнокартинками, вместо околотехнических страданий

#vyqmf/66 в ответ на /62
23 Jul 2015

Linda-chan, Я уже понял, что авторы билда - плохие. Делать-то ты чо будешь?

#vyqmf/67 в ответ на /65
23 Jul 2015

Graf, а чо делать ._. виртуалка же костыль

#vyqmf/74 в ответ на /72
23 Jul 2015

На 59 комментарии он догадался! Это успех!

#vyqmf/75 в ответ на /59
23 Jul 2015

Notis, Которые у меня в голове. Говорят, что Линда влезла в некий стафф, сама не понимая, как из него вылезать.

#vyqmf/76 в ответ на /73
23 Jul 2015

Notis, Не больший костыль, чем ребилд рубей, со всем рантаймом. по времени и трафику, еще хз что дешевле выйдет

#vyqmf/77 в ответ на /74
23 Jul 2015

Продолжай удачно шутить и делать вид, что не обосрался.

#vyqmf/78 в ответ на /60
23 Jul 2015

Так и придётся делать. Но обидно же.

#vyqmf/79 в ответ на /61
23 Jul 2015

Выше вменяемый джентльмен предложил. Я обычно именно таким методом подобные вещи и решаю.

#vyqmf/80 в ответ на /67
23 Jul 2015

Но ведь можно обсудить это в Point (и это было сделано), а значит день прошёл не зря!

#vyqmf/81 в ответ на /79
23 Jul 2015

Graf, у меня такого нет... есть внутренний диалог, но он о другом.

#vyqmf/82 в ответ на /76
23 Jul 2015

С которыми ты общаешься вместо чтения актуальной информации.

#vyqmf/83 в ответ на /73
23 Jul 2015

Linda-chan, ещё можно запилить псевдофс где всё будет транслитироваться в cp1251 и будет тебе счастье

#vyqmf/85 в ответ на /79
23 Jul 2015

Было бы обсуждение, сплошной спиритический сеанс.

#vyqmf/87 в ответ на /81
23 Jul 2015

Windows NT, UTF-16, cp1251, Нотис не разговаривает с голосами в своей голове... Окей.

#vyqmf/90 в ответ на /85
23 Jul 2015

У меня файлы лежат на существующей ФС.

#vyqmf/91 в ответ на /86
23 Jul 2015

Linda-chan, есть псевдофс которые цепляются на твою корневую фс для удобноты работы с метаданными которые не может хост фс.

#vyqmf/92 в ответ на /91
23 Jul 2015

Я не буду комментировать этот полёт фантазии.

#vyqmf/93 в ответ на /92
23 Jul 2015

0xd34df00d, Ай, малацца, я уж думал, когда ты явишься

#vyqmf/97 в ответ на /95
23 Jul 2015

s/линупс/не-винда/

На солярисе и aix у меня тута тоже уникод.

#vyqmf/101 в ответ на /21
23 Jul 2015

Автор хочет

# Encoding: UTF-16

? Впрочем, не знаю, умеет ли оно UTF-16.

23 Jul 2015

Автор хочет

C:\Ruby\bin\ruby.exe "C:\Файло\Byaka.rb"

А оно отвечает, что

Can't find file C:\bofanfoa\Byaka.rb

#vyqmf/105 в ответ на /103
23 Jul 2015

А, руби и кодировка FS. Можешь погуглить, там, вроде, была какая-то история. Краткая версия: переходи на линукс (^ ^)'

#vyqmf/107 в ответ на /105
23 Jul 2015

Никогда не пишите на раби, не пользуйтесь софтом на раби и ссыте на программистов на раби.

23 Jul 2015

И ты, Брут...
Алсо, дело не в ФС, а в парсинге аргументов. Я так поняла, он делает GetCommandLine() и ждёт, что там будет UTF-8. А там не может быть UTF-8 никак.

#vyqmf/110 в ответ на /107
23 Jul 2015

поссал ИТТ в лицо любителю аналогий, рекомендую ссать другим.
аналогии - говно и ими оперируют в дискуссиях только тотальные долбоебы уровня ОП.

utf-8 - стандарт. те кто идут против стандартов - пидоры и сосали.

#vyqmf/111 в ответ на /7
23 Jul 2015

В индусском говнокоде виновата. Хули ты хотел?

#vyqmf/113 в ответ на /112
23 Jul 2015

Хорошо, что ты зашёл. Как там лимузин?

#vyqmf/115 в ответ на /113
23 Jul 2015

Это ты не нужен. Покинь тред и лечи смертельно раненую душу.

#vyqmf/123 в ответ на /122
23 Jul 2015

единственно верный камент во всем треде :D

#vyqmf/127 в ответ на /95
23 Jul 2015

зовите Шмелленгера и запасайтесь клеенкой!

#vyqmf/132 в ответ на /108
23 Jul 2015

Я тред пока что не начинал читать, и с руби знаком поверхностно, но в руби же нет юникодного строкового типа. Есть байтовые строки, как в сишечке. Следовательно, такое поведение (стандартизация на UTF-8) можно понять. Пойду проверю, как в Python сделано.

23 Jul 2015

Linda-chan, скорее всего, эта программа использует неюникодный вариант API. И ожидает получить там UTF-8. Это желание реализуемо, но проще выкинуть руби.

#vyqmf/137 в ответ на /30
23 Jul 2015

но ведь на нём и так пишут или японцы или просто ебанутые...

#vyqmf/141 в ответ на /108
23 Jul 2015

Я тут подумал, а что если сделать файл ruby.cmd примерно с таким содержанием:

@echo off
chcp 65001>nul
echo %*>%temp%\cmdl.txt
chcp 1251>nul
for /f "delims=" %%a in (%temp%\cmdl.txt) do ruby.exe %%a
del %temp%\cmdl.txt

вдруг заработает?

23 Jul 2015

Вместо 1251 можно попробовать 866.

#vyqmf/143 в ответ на /142
24 Jul 2015

на самом деле нет. и уже давно нет.
там довольно долго была гвоздиками вбита локаль, с которой ты собрал интерпретатор. с 1.9 это уже не так.

#vyqmf/145 в ответ на /134
24 Jul 2015

igelko, там байтовые строки, знающие о своей кодировке. Неужели это решает все проблемы? Неужели ничего не сломается, если в ARGV вместо строк в UTF-8 появятся строки в UTF-16LE?

#vyqmf/146 в ответ на /145
24 Jul 2015

Linda-chan, попробуй альтернативный интерпретатор руби, например, JRuby

24 Jul 2015

Да ну ёлки ж... Почему никто читать не умеет-то? Речь не о языке, а о екзешнике >_<

#vyqmf/148 в ответ на /134
24 Jul 2015

Я подозреваю, что так она и делает.
Выкинуть не могу, придётся биться на костылях =_=

#vyqmf/149 в ответ на /137
24 Jul 2015

Linda-chan, если екзешник (интерпретатор) использует не юникодный вариант API, то передать через командную строку UTF-8 возможно, я считаю.

#vyqmf/150 в ответ на /148
24 Jul 2015

Linda-chan, опиши отдельным постом, что там за ситуация, кто кого вызывает, от чего исходный код есть, от чего нету, адекватные люди подскажут костыль. Спокойной ночи.

#vyqmf/151 в ответ на /149
24 Jul 2015

Тоже вариант, но если стартовать Руби из другой программы, не CMD, то придётся ручками всё это делать =_=

#vyqmf/152 в ответ на /142
24 Jul 2015

По какой-то причине выполнение всегда прерывается на chcp. Тоесть команда выполняется, и всё, дальше возврат в оболочку.

#vyqmf/153 в ответ на /142
24 Jul 2015

Возможно всё, конечно, но так быть не должно.

#vyqmf/156 в ответ на /150
24 Jul 2015

Странно. %temp% случайно пробелов не содержит?

#vyqmf/157 в ответ на /153
24 Jul 2015

В любом варианте, я просто голые BAT файлы писала, где вызов chcp, а потом echo. Тишина, кроме сообщения о смене кодовой страницы. А вообще путь задан коротким именем.

#vyqmf/158 в ответ на /157
24 Jul 2015

Очень странно, у меня работает. Ну, как работает - меняю ruby.exe на echo ruby.exe и в ответ на

ryby.cmd "C:\Файло\Byaka.rb"

вижу

ruby.exe "C:\Файло\Byaka.rb"

#vyqmf/159 в ответ на /158
24 Jul 2015

Краткое описание событий.
#vyqmf/#105
Краткое описание решения.
#vyqmf/#61
Решение, признаться, было известно с самого начала (ну, ещё у меня иногда прокатывает вариант с коротким именем файла, который на NTFS не содержит кириллицы), я просто сообщила, что есть такая ситуация.

#vyqmf/160 в ответ на /151
24 Jul 2015

Справедливости ради, это в данном случае - CMD, а не Windows целиком. Сама Windows умеет конвертировать строки в UTF-8, но не умеет догадываться, что программа, использующая ANSI версию функции, ждёт получить UTF-8.

#vyqmf/162 в ответ на /140
24 Jul 2015

Проверил в XP - действительно не работает.

#vyqmf/163 в ответ на /161
24 Jul 2015

Linda-chan, пользоваться руби в винде бессмысленно, потому что все запускают его в линуксе. Если ты хочешь деплоить руби в винде, используй JRuby, иначе ты просто потратишь время.

24 Jul 2015

Идиотодетектор продолжает работать.

#vyqmf/166 в ответ на /165
24 Jul 2015

у тебя нет опыта работы с руби, ты получаешь бесплатный и правильный совет, но отвечаешь ругательствами - очень эффективно

#vyqmf/167 в ответ на /166
24 Jul 2015

Зато у тебя есть опыт пальцовки без вникания в суть проблемы. Ну хорошо, ты доказал, что ты - крутой мэн, который деплоит не переставая. А теперь вчитайся в пост и пойми, о чём идёт речь.
P.S. За Жаву нужно приговаривать к манямбе.

#vyqmf/168 в ответ на /167
24 Jul 2015

могу просто посоветовать вместо абсолютного пути к файлам передавать относительный

#vyqmf/169 в ответ на /168
24 Jul 2015

Какой хирый. А он не хочет. Везде хочет, а для -r хочет абсолютный путь.

#vyqmf/171 в ответ на /169
24 Jul 2015

Ты тоже в булошную на вертолёте летаешь?

#vyqmf/172 в ответ на /170
24 Jul 2015

Linda-chan, а ты велосипед для каждой поездки строишь?

#vyqmf/173 в ответ на /172
24 Jul 2015

Маякуй, когда разум вернётся в твою бренную голову.

#vyqmf/175 в ответ на /173
24 Jul 2015

Екзешника.

haml --r Z:\Src\Data.rb template.haml data.htm

#vyqmf/178 в ответ на /177
24 Jul 2015

#vyqmf/146 ну по-хорошему интерпретатор должен для общения с внешним миром хотя бы переменную LANG посмотреть и узнать какая кодировка у stdin/out и всего остального.
Кстати да, можно сходить в сорцы - может можно правильную кодировку через LC_ALL какой-нибудь задать, прости господи.

#vyqmf/182 в ответ на /146
24 Jul 2015

#vyqmf/146 ну по-хорошему интерпретатор должен для общения с внешним миром хотя бы переменную LANG посмотреть и узнать какая кодировка у stdin/out и всего остального.
Кстати да, можно сходить в сорцы - может можно правильную кодировку через LC_ALL какой-нибудь задать, прости господи.

#vyqmf/183 в ответ на /146
24 Jul 2015

кстати никто не сказал, что это именно руби хочет.
Это скорее абстракция над ОС тонковата в этом месте и надо сделать приседание в сорцах.
У меня в пейтонем скрипте как-то так пришлось сделать, чтоб работало:
https://github.com/Igelko/p...mail_unpacker.py#L21
И далее втупую перекодировать:
https://github.com/Igelko/p...mail_unpacker.py#L95
Там надо просто хорошо понимать, что к тебе на вход попадает - это жи байтики, про которые интерпретатор по-дефолту думает, что наверное это строчка в utf-8, раз в нём по-дефолту utf-8.

24 Jul 2015

"Руби хочет" - это метафора. На самом деле там был грубый баг, когда бралась ANSI версия функции и программа с покерфеймом делала вид, что там наверняка UTF-8.
В Windows тебе не нужно думать, что тебе "по дефолту попадает". Если используешь юникодные функции, то тебе попадает UTF-16.

#vyqmf/186 в ответ на /185
24 Jul 2015

igelko, кодировку аргументов ещё можно обойти в своём скрипте, но один из аргументов интерпретатора - путь к скрипту, тут уж не пофиксишь, так как твой скрипт не запустится.

Баг этот в официальном релизе интерпретотора под винду, так что это именно "проблема руби".

#vyqmf/187 в ответ на /185
24 Jul 2015

а, ну это прелестно. просто прелестно.

#vyqmf/189 в ответ на /187
24 Jul 2015

так никто не пользуется этим интерпретатором потому что, всем плевать на эту платформу

#vyqmf/190 в ответ на /187
24 Jul 2015

вот только не всем, а тем кто интерпретатор пишет.

#vyqmf/191 в ответ на /190
24 Jul 2015

Алсо, ты, как и половина ораторов здесь, путаешь программу на интерпретаторе и сам интерпретатор.

#vyqmf/192 в ответ на /185
24 Jul 2015

netoneko, как там у вас в манямирке, перевалило за один процент или всё ещё так же?

#vyqmf/193 в ответ на /190
24 Jul 2015

пейтон, к примеру, под венду намного лучше работает.

#vyqmf/194 в ответ на /190
24 Jul 2015

не, ну серверная венда зверь всё-таки редкий в вебе.

#vyqmf/196 в ответ на /193
24 Jul 2015

Вот будешь проходить флюрографию, а там...

#vyqmf/197 в ответ на /188
24 Jul 2015

а ты пробовала передавать путь в руби-скрипт? может, это баг в хамле, а не в интерпретаторе

#vyqmf/198 в ответ на /192
24 Jul 2015

(I didn't mean "Ruby is garbage" [any more than I mean "software is garbage, including all software that I've written"])

#vyqmf/199 в ответ на /197
24 Jul 2015

Почему ты употребляешь "мне" во множественном числе?

#vyqmf/200 в ответ на /190
24 Jul 2015

я говорю про авторов и контрибьюторов MRI, а не про себя (хотя мне тоже все равно, как руби работает на винде)

#vyqmf/201 в ответ на /200
24 Jul 2015

не весь, но в абсолютном количестве серверов пока форточка ощутимо меньше.

#vyqmf/205 в ответ на /202
24 Jul 2015

ты скажи конкретно, что ты хочешь сказать

#vyqmf/206 в ответ на /204
24 Jul 2015

Потому что все они трудятся над другими важными делами.

#vyqmf/211 в ответ на /205
24 Jul 2015

какая связь между руби и линукс-десктопом? что ты несешь?

#vyqmf/212 в ответ на /209
24 Jul 2015

почему у тебя кстати старая версия руби?

#vyqmf/213 в ответ на /207
24 Jul 2015

Потому что рубиинсталлер собирают отморозки, которые то ли не понимают, что плохого в статической линковке к DLL, которые переписывают в каждой версии Windows заново, то ли не понимают как идёт процесс сборки и как на него можно повлиять. В багтрекере какие-то невнятные мычания на тему "У нас тулчайн, мы не понимать как оно работать".

#vyqmf/214 в ответ на /213
24 Jul 2015

Выполняют программы на сервере, а разрабатывают на десктопе. А на десктопе лидирует винда.

#vyqmf/215 в ответ на /212
24 Jul 2015

и что? пускай лидирует на десктопе. Разрабатывают обычно на платформе, близкой к тому, где будут запускать, так что никто в здравом уме на руби в винде не разрабатывает.

#vyqmf/216 в ответ на /215
24 Jul 2015

А там старый-добрый советский аппарат, всё стабильно и надёжно!

#vyqmf/217 в ответ на /197
25 Jul 2015

Увы, старых добрых аппаратов почти не осталось, как это ни странно.

#vyqmf/218 в ответ на /217

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.