BUG YUICкомпрессор со специальными символами - PullRequest
1 голос
/ 17 ноября 2011

Я использую более новую версию YUICompressor (2.4.7) для сжатия моих файлов Javascript и CSS, в течение долгого времени все было, очевидно, хорошо ... когда я понял, что специальные символы "í" и "" " не конвертируются успешно. Как ни странно, другие специальные символы конвертируются, как мы ожидаем. Почему просто "í" и "Í" не конвертируются? Из-за того, что с этими двумя символами не все в порядке, я исключил конфликты между набором символов между файловой системой и языком. Это похоже на ошибку. Может ли кто-нибудь помочь мне с этой проблемой?

Посмотрите, что происходит, когда я конвертирую файлы:

Преобразование CSS

От:

@import url("/láÍíàyout.css");

Кому:

@import url("/lá�?íàyout.css");

Преобразование JS

Из:

var x = 'cícÍsúlúm irmãêîôûúàá';

Кому:

var x="c�c�?súlúm irmãêîôûúàá";

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Ваш набор символов UTF-8?Если другое, вы указываете это (либо в командной строке, либо в качестве аргумента для InputStreamReader / OutputStreamWriter)?При использовании в качестве сервлета, вы устанавливаете кодировку как для запроса, так и для ответа?

Сегодня я интегрировал компрессор yui с моим приложением (версия 2.4.7), и он правильно обрабатывает символы Юникода, поэтому вы можете пропуститьодин из вышеперечисленных шагов.

0 голосов
/ 17 ноября 2011

Хмм .. когда это имеет отношение только к i, тогда Turkey test приходит мне на ум.

Прописная буква i по-турецки это не I, это Iс точкой на нем.Когда строковые манипуляции используются с toUpperCase() или чем-то еще, вы должны обратить внимание, иначе ваша программа не будет работать нормально в турецких операционных системах.

Пример:

"fail".toUpperCase().equals("FAIL")

Этот код пытаетсявыполнять сравнение строк без учета регистра, но в турецких системах это не удается.

Если вы используете турецкую систему, попробуйте запустить ее в другой нетурецкой системе и сообщите нам, если ошибка с YUICompressor все еще существует.

...