неработающие символы UTF8 в MySQL с использованием PHP - PullRequest
0 голосов
/ 21 октября 2018

Я заметил, когда имел дело с некоторыми именами, которые не имеют нормального правописания, то есть стандартного алфавита, Великобритания / США теряются из-за того, что я вставил запись в то, что фактически отображается в базе данных.Я немного потихоньку читал о типе сортировки, что, как я думал, вызывало проблему, но не уверен, так ли это, или я все еще делаю это неправильно, так как моя проблема все еще сохраняется.

Ниже приведен пример записи, которую я создаю, а также структура моей базы данных, и, как вы также можете видеть, поле last_name имеет "ö", когда я просматриваю запись, я на самом деле вижу last_name "Körner"

CREATE TABLE `data` (
  `id` bigint(20) NOT NULL,
  `profile_id` int(11) NOT NULL,
  `first_name` varchar(100) NOT NULL,
  `last_name` varchar(100) NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

ALTER TABLE `data`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `profile_id` (`profile_id`);

ALTER TABLE `data`
  MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT;


INSERT IGNORE INTO data (profile_id, first_name, last_name) VALUES (1, 'Brent', 'Körner');

Для сопоставления полей в last_name установлено значение 'utf8_general_ci', которое, как я понимаю, или, если я скажу, подумал, разрешит эту проблему.

Похоже, я что-то не так делаю /отсутствует в PHP, так как когда я выполняю запрос INSERT в PhpMyAdmin, он сохраняет нормально.

1 Ответ

0 голосов
/ 21 октября 2018

кажется, что проблема была в конце концов в PHP, и я не устанавливал кодировку.

Для mysql

mysql_set_charset('utf8');

Для mysqli

mysqli_set_charset('utf8');

ref https://akrabat.com/utf8-php-and-mysql/

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