mysql - MySQL 中的 Latin1_swedish_ci 编码

标签 mysql utf-8 character-encoding

我在我的网站上使用 UTF-8 编码。最近我一直在我的 MySQL 表中存储中文/西类牙文/俄文名称,然后用 PHP 在使用 UTF-8 字符集生成的页面上打印它们。该页面工作正常,我正确地看到了所有字母。但是,我刚刚意识到我的表是用 latin1_swedish_ci 字符集设置的。怎么可能即使我使用 latin1_swedish_ci 字符集存储这些名称,在我的网站上使用 UTF-8 提供它们仍然正确显示它们?

谢谢!

乔尔

最佳答案

因为mysql连接还在使用latin1,
您应该将这些数据视为 UTF-8 格式,但存储在 latin1 环境中。

所以,为了证明,

show variables like '%char%';

上面应该返回大部分设置在 latin1 中

申请

set names utf8;

你会看到所有的 UTF-8 都变成了双重编码(乱码)

关于mysql - MySQL 中的 Latin1_swedish_ci 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4291284/

相关文章:

winapi - MB_ERR_INVALID_CHARS 标志是否应该用于 MultiByteToWideChar 的 UTF-8 转换?

string - 从字符串创建字符切片的滑动窗口迭代器

python - python3构建的Sublime Text 2编码错误

php - mysql中错误的字符集

php - 使用php解析html文件时出现问题

php - 查询Json : Return Each Column Twice with Different Names

php - 使用前验证 SQL 文件

php - PDO 插入动态字段

php - AWS php5.4无法连接RDS

c++ - 为什么 unicode char 在 std::string 中存储为 UTF-8 而在 wchar_t 中存储为 UTF-16/32?