我无法将日语字符输入MySQL

时间:2011-12-29 08:59:23

标签: mysql unicode

我试图将カテゴリ输入MySQL,但我得到以下内容

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

我将Collat​​ion更改为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:Tue Jun 7 16:32:41 PDT 2011; root:xnu-1504.15.3~1 / RELEASE_X86_64 x86_64

数据库版本5.5.9

数据库整理utf8_general_ci

PHP Version 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到PHP接口apache2handler

1 个答案:

答案 0 :(得分:1)

排序只会影响排序,而不会影响字符集控制的字符和存储方式。阅读this chapter以获得更多理解。你很可能想要'ujis'或'sjis'或'utf8':

CREATE DATABASE db_name CHARACTER SET ujis COLLATE ujis_japanese_ci;

您可能还想将此作为客户端的第一个命令调用;

SET NAMES ujis COLLATE ujis_japanese_ci