экранирование символов в as3, как это делает JavaScript - PullRequest
2 голосов
/ 16 февраля 2009

У меня проблемы с экранированием специальных символов в as3.

trace( escape("who are ü?") );

возвращает, кто% 20are% 20% uFFFD% 3F

или

trace( encodeURIComponent("who are ü?") );

возвращает, кто% 20are% 20% EF% BF% BD% 3F

в то время как в JavaScript это

alert( encodeURIComponent("who are ü?") );

возвращает, кто% 20are% 20% C3% BC% 3F

и

alert( escape("who are ü?") );

возвращает, кто% 20are% 20% FC% 3F

Любые предложения, как получить as3, чтобы вернуть экранированные специальные символы, как JavaScript? Почему as3 явно задыхается?

(вот хорошая ссылка: http://www.ultrashock.com/forums/actionscript/as3-escape-vs-as2-escape-122046.html)

Ответы [ 2 ]

5 голосов
/ 16 февраля 2009

Похоже, что AS экранирует строку как UTF-16, в то время как пример Javascript экранирует как UTF-8. escape не определяет, как обращаться с не-ascii символами, и поэтому он не рекомендуется к использованию в JavaScript 1.5. Вместо этого следует использовать функцию encodeURIComponent, которая определена как экранирование как UTF-8 - это должно быть согласовано в разных реализациях. Если вам требуется поведение AS, я не думаю, что в Javascript есть встроенная функция, но вы можете использовать предоставленные функции здесь .

1 голос
/ 17 февраля 2009

Хотя в моей среде IDE (intellij) отображались, сохранялись и загружались специальные символы, они сохранялись в 1252 году. Переход на UTF-8 исправил это.

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