2009-05-22 2 views
1

Я ранее читал статью Спольского о кодировании символов, а также this from dive into python 3. Я знаю, что php получает Unicode в какой-то момент, но мне трудно понять, почему это так важно.unicode in php

Если используется php-CLI, хорошо, это имеет смысл. Тем не менее, в мире веб-сервера, это не для браузера, чтобы взять это целое число и превратить его в символ (основанный на кодировании символов).

Что я не получаю?

ответ

0

Ну, с одной стороны вы должны каким-то образом генерировать Струны дисплеи браузера :-)

+0

Да, строка - неизменяемый массив байтов. практически бессмысленным без какой-либо схемы кодирования. заботиться о разработке? – 2009-05-22 14:20:06

+2

Точно. И если функции манипуляции строкой не знают дескриптор схемы кодирования, как они должны работать правильно? – n3rd

+1

ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh – 2009-05-22 14:23:41

0

Там удивительный FAQ раздел о Unicode и веб-here. Смотрите, если ответы на некоторые вопросы.

1

Строковые функции PHP часто обрабатывают строки как последовательности 8-байтных символов. У меня были всевозможные проблемы с китайским текстом, проходящим через строковые функции. substr(), например, может вырезать многобайтовый символ пополам, что вызывает всевозможные проблемы для синтаксических анализаторов XML.

4

PHP «поддерживает» UTF8, посмотрите на расширение mbstring 1. Большая часть проблемы исходит от разработчиков PHP, которые не используют функции mb * при работе с данными UTF8.

символы UTF8 часто имеют более одного символа, поэтому вам необходимо использовать функции, которые ценят этот факт, например mb_strpos 2, а не strpos 3.

Он отлично работает, если вы получаете UTF8 из браузера -> вставляете в базу данных -> получая его обратно -> показывая его пользователю. Если вы делаете что-то более тесно связанное с данными UTF8 (или даже с какой-либо крупной текстовой обработкой), вам, вероятно, следует подумать об использовании альтернативного языка.