翻译 table 列后无法获取数据
Cannot get data after translating table column
我有一个简单查询的问题。假设我有 table colors(color, code)
CREATE TABLE IF NOT EXISTS `colors` (
`color` varchar(20) NOT NULL,
`code` varchar(20) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
有数据:
INSERT INTO colors VALUES ('blue', 'Conventional'), ('green', 'Realistic');
当我进行简单的 select 查询时
SELECT * FROM colors WHERE code = 'Realistic';
我得到了相应的行。
然后,我将 code 列翻译成希腊语。所以我更新了 colors table.
UPDATE colors set code = 'Συμβατικός' WHERE color = 'blue';
UPDATE colors set code = 'Ρεαλιστικός' WHERE color = 'green';
table 已成功更新。但是,如果我现在进行查询
SELECT * FROM colors WHERE code = 'Ρεαλιστικός';
我没有得到结果!
为什么会这样?有没有什么想法,因为我想不通。
提前致谢。
你已经进入了UTF-8的奇异世界。
首先要知道的是:
将数据库排序规则设置为 UTF-8 是不够的。
您还需要注意几点。我敢打赌,您忘记或不知道要记住其中的一些事情。尝试一下,看看是否有帮助。
- 修改您的 php.ini 文件以使用 UTF-8 作为默认字符集:
default_charset = "utf-8";
- 将 UTF-8 设置为所有 MySQL 连接的默认字符集(是的,您的连接也使用字符集)
在 MySQL 方面,可能需要对 my.ini 文件进行如下修改:
[client]
default-character-set=UTF-8
[mysql]
default-character-set=UTF-8
[mysqld]
character-set-client-handshake = false #force encoding to uft8
character-set-server=UTF-8
collation-server=UTF-8_general_ci
[mysqld_safe]
default-character-set=UTF-8
完成这些更改后重新启动 MySQL。
如果连接客户端无法指定其与MySQL通信的编码,建立连接后您可能必须运行以下command/query: set names UTF-8;
我有一个简单查询的问题。假设我有 table colors(color, code)
CREATE TABLE IF NOT EXISTS `colors` (
`color` varchar(20) NOT NULL,
`code` varchar(20) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
有数据:
INSERT INTO colors VALUES ('blue', 'Conventional'), ('green', 'Realistic');
当我进行简单的 select 查询时
SELECT * FROM colors WHERE code = 'Realistic';
我得到了相应的行。
然后,我将 code 列翻译成希腊语。所以我更新了 colors table.
UPDATE colors set code = 'Συμβατικός' WHERE color = 'blue';
UPDATE colors set code = 'Ρεαλιστικός' WHERE color = 'green';
table 已成功更新。但是,如果我现在进行查询
SELECT * FROM colors WHERE code = 'Ρεαλιστικός';
我没有得到结果!
为什么会这样?有没有什么想法,因为我想不通。
提前致谢。
你已经进入了UTF-8的奇异世界。
首先要知道的是:
将数据库排序规则设置为 UTF-8 是不够的。
您还需要注意几点。我敢打赌,您忘记或不知道要记住其中的一些事情。尝试一下,看看是否有帮助。
- 修改您的 php.ini 文件以使用 UTF-8 作为默认字符集:
default_charset = "utf-8";
- 将 UTF-8 设置为所有 MySQL 连接的默认字符集(是的,您的连接也使用字符集)
在 MySQL 方面,可能需要对 my.ini 文件进行如下修改:
[client] default-character-set=UTF-8 [mysql] default-character-set=UTF-8 [mysqld] character-set-client-handshake = false #force encoding to uft8 character-set-server=UTF-8 collation-server=UTF-8_general_ci [mysqld_safe] default-character-set=UTF-8
完成这些更改后重新启动 MySQL。
如果连接客户端无法指定其与MySQL通信的编码,建立连接后您可能必须运行以下command/query:
set names UTF-8;