LAMP UTF-8 неправильно сохраняет в базу данных MySQL - PullRequest
0 голосов
/ 06 октября 2010

Я преобразовал свою базу данных с латыни 1 в UTF8, и с помощью phpPMyAdmin вы можете вводить данные и отображать их правильно.Однако просмотр на страницах, которые я разработал на PHP, и редактирование его с помощью моей простой CMS сохраняет символы, которые должны быть неправильно закодированы.

Я потратил несколько часов на исследование и в конечном итоге нашел этот фрагмент кода:

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn_products);

Который, будучи помещенным перед операцией БД, исправляет проблему - изумительно!

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

Может кто-нибудь указать мнев правильном направлении, пожалуйста?

1 Ответ

2 голосов
/ 06 октября 2010

К сожалению, вы не можете сделать это для каждой базы данных, это либо устанавливается клиентским приложением, либо сервером, если клиент ничего не заявляет.Вы должны установить его только один раз за сессию, поэтому просто научитесь позволять всегда следить за mysql_select_db(), который, вероятно, присутствует с mysql_query('SET NAMES utf8;') (или любым другим набором символов, который вам нужен).

...