jpo*_*o38 3 mysql encoding utf-8 utf8mb4
我有一台托管 MySQL 的服务器,PHPMyAdmin 报告:
Server version: 5.1.56-community
MySQL charset: UTF-8 Unicode (utf8)
Run Code Online (Sandbox Code Playgroud)
我使用mysqldump -uroot -p database > file.dumpor导出一个 sql mysqldump -uroot -p database -r file.dump(无论如何,两个生成的文件都是相同的)。
在本地,我安装了 MySQL 5.5 和 HeidiSQL 9.5。
作为服务器的 SQL 文件 my.ini 有:
default-character-set=utf8
Run Code Online (Sandbox Code Playgroud)
我将本地 my.ini 文件更改为
default-character-set=utf8
Run Code Online (Sandbox Code Playgroud)
但是也:
character-set-server=utf8
Run Code Online (Sandbox Code Playgroud)
他们都被设置为latin1。不知道为什么我在character-set-server这里设置而服务器没有。反正。
现在我启动 HeidiSQL,它显示utf8mb4引用而不是utf8会话参数。我不知道为什么:
现在,我导入我的转储文件,我看到即使所有内容都明显配置在utf8.
à本地数据库上未正确显示之类的特殊字符。
难道我做错了什么?
请注意,如果我在服务器上安装 HeidiSQL,变量选项卡会显示相同的Session和Global参数值,并且à显示正确。
所以这可能是问题的根本原因,但我不知道如何解决它。如果我在导入 sql 文件之前更改会话值,它不会解决问题,并且utf8mb4当我再次启动 HeidiSQL 时,值也会恢复。
感谢 deceze 评论,我可以解决这个问题。
在 HeidiSQL 中,当我选择要执行的 sql 文件时,实际上有一个我最初没有注意到的“ncoding”选项;-)
如果我保持“自动检测”,导入会生成不良内容(带有 mojibake 字符)
如果我强制“UTF-8”,则导入是完美的
不知道为什么 HeidiSQL 无法自动检测编码...
| 归档时间: |
|
| 查看次数: |
14794 次 |
| 最近记录: |