Отображение utf8 на флэш-памяти? - PullRequest
0 голосов
/ 27 марта 2012

Я использую flash для чтения содержимого со страницы UTF8, в которой есть Unicode.Проблема в том, что когда Flash загружает данные, они отображают ????????вместо всего Unicode.

В чем может быть проблема?

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Flash внутренне использует UTF-8 для представления строк, поэтому проблем не должно быть, если весь стек использует кодировку UTF-8.

Возможно, у вас есть неявный шаг декодирования / кодирования где-то по пути. К сожалению, это может быть миллион вещей. Начните с нуля, вставьте следы и / или сообщения журнала, чтобы увидеть, где преобразование не удается. Убедитесь, что ваш XML-контент использует UTF-8, и особенно если вы используете PHP, убедитесь, что все исходные файлы PHP сохранены в кодировке UTF-8 - редактирование файлов PHP в простых текстовых редакторах часто приводит к формату Windows / Mac исходные файлы, которые затем нарушат кодировку вашего персонажа. Кроме того, проверьте заголовки запроса / ответа в формате HTML, чтобы определить, не совпадает ли кодировка.

1 голос
/ 27 марта 2012

По умолчанию Flash обрабатывает строки, как если бы они были закодированы с использованием UTF-8. Причиной того, что вы видите символы, которые могут заменять непечатаемые символы или недопустимые / отсутствующие глифы, может быть то, что вы установили System.useCodepage в true - если это то, что произошло, то почему вы это сделали?

В противном случае в шрифте, который используется для отображения символов, могут отсутствовать глифы нужных вам символов. Вы можете проверить это, используя Font.hasGlyphs("string with the glyphs");, чтобы убедиться, что текст может отображаться. Обычно это относится только к встроенным шрифтам.

Еще одна возможность заключается в том, что исходный текст, который вы пытаетесь отобразить, не является строкой в ​​кодировке UTF-8. Некоторые особенно популярные форматы файлов, такие как XML и HTML, иногда используют объявление формата, не соответствующее фактической полезной нагрузке (например, тег XML: <?xml encoding="utf-8" ?> может быть присоединен к любому XML независимо от фактической кодировки документа). Чтобы убедиться, что текст в UTF-8 - прочитайте его как ByteArray и убедитесь, что первый бит каждого байта установлен в 0. Однобайтовые кодировки, которые используют национальные символы, используют первый бит для кодирования своих символов, в то время как UTF-8 никогда этого не делает.

...