Javascript strToLower (), uft8 и (немецкий) специальные символы - PullRequest
0 голосов
/ 03 апреля 2012

У меня проблемы с JavaScripts strToLower ()

var s = 'tür';
alert(s);
alert(s.strToLower());

должно привести к тому же выводу. однако вывод отличается:

1: tür
2: tã¼r

какие-либо предложения, как правильно обрабатывать uft8-special при использовании strToLower ()?

Martin

Ответы [ 5 ]

3 голосов
/ 03 апреля 2012

Собственный метод JavaScript .toLowerCase() прекрасно обрабатывает UTF-8:

alert( "tür".toLowerCase() );

Возможно, для вашей кодировки страницы должно быть установлено значение UTF-8 с заголовком или meta -tag.

0 голосов
/ 08 мая 2012

Ваш код не имеет смысла.Если вы присвоите tür строке, то вы всегда получите tür обратно.Вы, вероятно, пропускаете шаг из своего кода, например, отправку строки через AJAX на сервер.Для этого нужно будет закодировать строку, обычно используя UTF-8, и в этом случае правильная кодировка будет tür, как вы заметили.Однако если сервер работает в стандарте ISO-8859-1 вместо UTF-8, он будет считать, что исходная строка была tür, и попытается уменьшить ее до tã¼r, как описано.Это вызовет проблемы, когда внешний интерфейс попытается интерпретировать его как UTF-8.Решение состоит в том, чтобы сервер также работал в UTF-8.

0 голосов
/ 03 апреля 2012

Убедитесь, что файл, с которым вы работаете, закодирован в "UTF-8 без BOM" (опция в Notepad ++) и добавьте <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> внутри <head>

Я пробовал и работает.

0 голосов
/ 03 апреля 2012

У вас есть две встроенные функции для преобразования в нижний регистр: .toLowerCase () и .toLocaleLowerCase () .Оба должны отлично работать с примером, который вы предоставляете, но вы должны убедиться, что вы сохранили свой исходный код как UTF-8.Точная процедура сильно зависит от вашей IDE или редактора.

Кроме того, не повредит, если ваш веб-сервер добавит кодировку в заголовки Content-Type.

0 голосов
/ 03 апреля 2012

Существует функция toLowerCase, и она должна работать нормально, поскольку Javascript использует UTF8 для внутренних целей. Проверка:

http://jsfiddle.net/5k5hv/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...