В базе данных есть такие символы, как Â и т. Д. Что делать? - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть несколько символов в моем описании, как â € и так далее. Могу ли я что-нибудь с этим сделать? Или, если это в базе данных, я ничего не могу сделать сейчас?

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Это в некоторой степени зависит от того, в чем проблема на самом деле ...

Если эти символы должны быть там (например, "Mañana" на испанском языке), тогда вы будетенеобходимо убедиться, что все в UTF-8 ... лучший способ:

1: проверить таблицы базы данных в кодировке "utf-8" (если не преобразовать их в utf-8)

2: как заметил Мартин, убедитесь, что в качестве соединителя базы данных используется utf-8, используя что-то вроде:

mysql_set_charset('utf8'); //note that MySQL uses no hyphen here

3: убедитесь, что в документе используется utf-8 (вы можете добавить заголовок вверху)

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

4: просто чтобы быть в безопасности, добавьте его также в качестве метатега

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

HOWEVER

Вполне возможно, что в базе данных есть какие-то непонятные символы, где что-то вроде ISO-8859-1 было плохо переделано в UTF-8.В этом случае вы заметите такие вещи, как Â £ , где вы действительно хотите £ (поскольку символы UTF-8 содержат больше данных, чем символов ISO-8859-1, эти дополнительные данныеможет стать дополнительным персонажем, если вы не будете осторожны).

В этом случае вам лучше всего очистить базу данных (вы могли бы сделать что-то вроде UPDATE table SET field = REPLACE(field, '£', '£') для общих «ошибок»), а затем преобразоватьвесь Kaboodle до UTF-8 (как указано выше), чтобы избежать повторения проблемы.

0 голосов
/ 12 декабря 2011

Чтобы избежать появления таких символов,

  1. Установите кодировку для своей формы.HTML-формы имеют атрибут charset и значение.Вы можете использовать UTF-8
  2. Установить кодировку для документа, через PHP или с помощью тегов META (но это работает только на выходе)
  3. установить кодировку для таблицы базы данных
  4. получить класс / функцию для преобразования символов ascii как часть вашей фильтрации данных и экранирования
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...