Каков наилучший способ изменить кодировку текста в PHP? - PullRequest
0 голосов
/ 17 сентября 2008

Я хочу пропустить текст через фильтр, чтобы убедиться, что он весь в кодировке UTF-8. Каков рекомендуемый способ сделать это с PHP?

Ответы [ 5 ]

2 голосов
/ 17 сентября 2008

Ваш вопрос неясен, вы пытаетесь что-то кодировать? Если так, то utf8_encode ваш друг. Вы пытаетесь определить, не нужно ли его кодировать? Если это так, utf8_encode по-прежнему ваш друг, поскольку вы можете проверить, что результат совпадает с вводом!

1 голос
/ 17 сентября 2008

Проверьте функции многобайтовой строки здесь

0 голосов
/ 17 сентября 2008

Самый простой способ проверить срок действия UTF-8 :

  1. Если разрешена только одна строка:

    preg_match('/^.*$/Du', $value)
    
  2. Если разрешено несколько строк:

    preg_match('/^.*$/sDu', $value)
    

Это работает для PHP> = 4.3.5 и не требует никаких модулей PHP по умолчанию.

0 голосов
/ 17 сентября 2008

Учитывая поток байтов, вы должны знать, с какой это кодировки - электронная почта использует заголовки mime для определения кодировки, http использует заголовки http для указания кодировки. Также вы можете указать кодировку в метатеге на веб-странице, но это не всегда соблюдается.

В любом случае, когда вы знаете, из какой кодировки хотите конвертировать, используйте iconv , чтобы преобразовать его в utf8. посмотрите на раздел iconv документации php, там много полезной информации.

Ах, Томас разместил ссылку, которую я искал. Необходимо прочитать.

0 голосов
/ 17 сентября 2008

Вам нужно знать, в каком наборе символов закодирована ваша входная строка, иначе это никуда не денется.

Если вы хотите сделать это правильно, эта статья может быть полезна: Абсолютный минимум, который должен знать каждый разработчик программного обеспечения Абсолютно, положительно, необходимо знать о Unicode и наборах символов (без оправданий!)

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