WedX - журнал о программировании и компьютерных науках

Amazon RDS, проблема Юникода UTF-8 с php

Я использую Amazon RDS, и мне трудно читать данные utf из БД. Результаты отображаются как символы, отличные от utf, и, следовательно, с кодировкой utf-8 в db они отображаются как неверные символы.

БД была перенесена из другой базы данных MySQL (не Amazon RDS), и когда код взаимодействует с этой базой данных, все в порядке.

Я проверил набор символов и сопоставление для всех таблиц, а сама БД - все они UTF-8 и utf_general_ci.

Страницы используют кодировку utf-8, как это

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

Я также пытался передать этот запрос «SET NAMES utf8», все равно не помогло.

Я заметил, что у кого-то еще была такая же проблема с RDS

Не удается сохранить UTF-8 в RDS, несмотря на настройку новой группы параметров с помощью Rails на Heroku

И решение, данное им, состояло в том, чтобы указать набор символов в строке подключения, это решение, по-видимому, работало для рельсов, но я не думаю, что в PHP есть такая вещь, как строка подключения.

Вот как я подключаюсь к mysql

mysqli_connect($this->host, $this->login, $this->pw, $this->database)

Кроме того, если я изменю тип данных этих столбцов на двоичные типы данных, такие как BLOB, они будут работать правильно.


Ответы:


1

То, что вы ищете вместо строки подключения, скорее всего, mysqli::set_charset( ), который изменит ваш набор символов клиента по умолчанию;

if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
    printf("Current character set: %s\n", $mysqli->character_set_name());
}
22.03.2012
  • Спасибо за это, но это не помогло, я думаю, может быть, mysqldum не правильно сбрасывал символы юникода, но я считаю буквы в файле с помощью wc -m, они меньше, чем размер файла в байтах, так что это, вероятно, означает, что некоторые символы хранятся в юникоде. 23.03.2012
  • Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]