Я не могу ввести японский символ в MySQL - PullRequest
0 голосов
/ 29 декабря 2011

Я пытался ввести カ テ ゴ リ в MySQL, но получаю следующее

1 row(s) affected.
Warning: #1366 Incorrect string value: '\xE3\x82\xAB\xE3\x83\x86...' 
for column 'bloc_name' at row 1

Я изменил Collation на ujis_japanese_ci, но результат тот же.Кто-нибудь может подсказать, как это решить?Заранее спасибо.

Дополнительная заметка

Я создал дб вот так,

CREATE TABLE dtb_bloc (
device_type_id int NOT NULL,
bloc_id int  NOT NULL,
bloc_name text,
tpl_path text,
filename varchar(50) NOT NULL,
create_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_date timestamp NOT NULL,
php_path text,
deletable_flg smallint NOT NULL DEFAULT 1,
PRIMARY KEY (device_type_id, bloc_id),
UNIQUE (device_type_id, filename)
) ENGINE=InnoDB;

+++++++++++++++

Дополнительное примечание:

Я использую MAMP, подробности приведены ниже.

PHP построен на Darwin sokada-macbook.local 10.8.0 Ядро Darwin Версия 10.8.0: Tue7 июня 16:32:41 PDT 2011;root: xnu-1504.15.3 ~ 1 / RELEASE_X86_64 x86_64

Версия базы данных 5.5.9

Сравнение базы данных utf8_general_ci

Версия PHP 5.3.6

WebСервер Apache / 2.2.17 (Unix) mod_ssl / 2.2.17 OpenSSL / 0.9.8r DAV / 2 PHP / 5.3.6

Интерфейс WebServer to PHP apache2handler

1 Ответ

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

Сортировка влияет только на сортировку, а не на то, какие символы разрешены и как они хранятся, что контролируется набором символов. Прочитайте эту главу для большего понимания. Скорее всего, вам понадобятся «ujis», «sjis» или «utf8»:

CREATE DATABASE db_name CHARACTER SET ujis COLLATE ujis_japanese_ci;

Вы также можете вызвать это как свою первую команду от клиента;

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