Руководства для работы с Unicode в PHP5?

Привет всем. Я разрабатываю новый сайт (php5/mySQL), и я хочу, наконец, попасть на юникод. Я соглашусь на то, что не знаю абсолютно ничего о поддержке Unicode на данный момент, но я надеюсь это решить с вашей помощью.

После отчаянного сгибания моих крошечных, жалких оправданий для мышц Googlefu и прочесывания каждой страницы, которая выглядела многообещающей для моих новичков в Unicode, я пришел к выводу, что, хотя я не полностью поддерживаю, мой драгоценный язык выбора ( PHP для тех, кто забыл) сделал хотя бы наполовину попытку управления чужим зверем (и от того, что еще я вижу, преуспел?). Я также пришел к выводу, что

<php header('Content-Type: text/html; charset=utf-8'); ?>

- отличное место для начала и что я должен смотреть на поддержку UTF-8, так как у меня много места на моем (совместном, на данный момент) хостинге.

Однако я не уверен, что эта странная функция, известная как mb_ *, означает или как ее включить в такие функции, как strlen() и., Честно говоря, я не знаю, на что влияет другая функциональность (которой я не могу жить без).

Итак, я пришел к вам в поисках просветления и, возможно, выпрямил мой смутный (где Юникод!) мозг. Я действительно хочу поддержать его, но мне нужна серьезная помощь.

P.S.: влияет ли Unicode на mysql_real_escape_string() или на любые другие меры предотвращения/безопасности XSS? Мне тоже нужно оставаться на вершине!

Спасибо заранее.

  • Добавление Javascript в микс, так как я буду использовать сочетание pure и jQuery и не знаю о поддержке Unicode + на этом языке.;)

Ответ 1

  • Добро пожаловать на борт utf8:)
  • Вы должны просто использовать функции mb_ * в место вашей традиционной str * Функции
  • MySQL и его API долго и хорошо поддерживали utf8, единственное требование, которое вы используете кодирования при сохранении данных и подключения. google для 'SET NAMES utf8 '
  • Обратите внимание на модификатор 'u' для preg_ *, которые используйте режим unicode.

Ответ 3

При работе с unicode:

  • используйте <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> поверх вашей страницы при выводе
  • сразу после подключения к базе данных используйте запрос sql: mysql_query("set names 'utf8'");
  • убедитесь, что все таблицы и обязательные поля имеют тип сортировки: 'utf8_unicode_ci'