1

是的,我知道你的想法,但目前我们决定选择 latin1。

这是 mySQL 配置: • mysql> SHOW VARIABLES LIKE 'character_set_%';
• +--------------+--------+
• | 变量名 | 价值 |
• +--------------+--------+
• | character_set_client | 拉丁语1 |
• | 字符集连接 | 拉丁语1 |
• | 字符集数据库 | 拉丁语1 |
• | 字符集结果 | 拉丁语1 |
• | character_set_server | 拉丁语1 |
• | 字符集系统 | utf8 |> 这是无法更改的,因为它是默认系统参数。

对于 php,我们在 php.ini 中使用以下命令:
mssql.charset = "ISO-8859-1"

对于 apache,通常:
AddDefaultCharset ISO-8859-1

每次备份时,我们都会在每个表中添加以下内容:
/*!40101 SET @saved_cs_client = @@character_set_client /;
/
!40101 SET character_set_client = utf8 */;

为什么 character_set_client 仍然在 utf8 中用于 apache/php 和 mysql 之间的连接?

4

2 回答 2

3

mysqldump 不会查看您的 php 或 apache 设置。--default-character-set使用 mysqldump 时需要添加 标志。

从手册

--default-character-set=charset_name

使用 charset_name 作为默认字符集。请参见第 9.5 节“字符集配置”。如果没有指定字符集,mysqldump 使用 utf8,早期版本使用 latin1。

于 2010-10-09T18:11:29.473 回答
0

如果您仔细注意到您设置的 php.ini 中的指令:

mssql.charset = "ISO-8859-1"

是指Microsoft SQL Server!连接而不是MySQL Server

杰克曼

于 2011-10-19T13:55:31.383 回答