mysql - 数据库中的多种编码

标签 mysql encoding utf-8 loading

我是数据库方面的新手,所以请耐心等待 ;)

我在 mysql 中设计了一个表来存储城市名称(和其他内容)。我从包含所有信息的 UTF8 txt 文件加载数据。

问题是城市名称是以原始形式书写的,所以我有来自中国、俄罗斯、英国、摩洛哥等地的字符集。当我将文件加载到数据库中时,有很多警告,因为那。我是这样做的:

LOAD DATA LOCAL INFILE '/home/ommadawn/cities.txt' INTO TABLE myDB.cities CHARACTER SET UTF8 FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' (country, city, lat, lon);

我所有的字符集都设置为 utf8,排序规则也设置为 utf8。

问题出在哪里?

谢谢!

编辑:

警告是这样的:

Warning | 1366 | Incorrect string value: '\xCC\xA7uway...' for column 'city' at row 9

在这一行中,文本是:

AE  Z̧uwayhir   23.28333    53.2

最佳答案

呃。在 UTF-8 中,CCA7 是一个“COMBINING CEDILLA”。所以,它注定要与相邻的字母组合成一个重音字母。此页面显示它与 u 结合;另一个实验(在相同 浏览器中)将它与 Z 结合:Z̧uwayhir。呃。

反正阿联酋好像也有这种地方。而 UTF-8(MySQL 的 utf8 或 utf8mb4)似乎是它的编码。

回到问题...可能表中的列未声明为CHARACTER SET utf8mb4

你知道它是否将文本截断为 Z 吗?
请提供 SHOW VARIABLES LIKE 'char%';

关于mysql - 数据库中的多种编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44863857/

相关文章:

php - 如果 mysql 结果 = 1 那么。不管用?

asp.net - 如何使用 ASP.Net (Mvc) 正确提供 pdf 文件?

c++ - 在微 Controller 上编写 UART 控制台时的 UTF-8 问题

javax.xml.bind 的 Base64 编码器/解码器吃掉字符串的最后两个字符

java - 属性文件中的中文字符未正确解码

jsf - Unicode 字符(阿拉伯字母)在 IDE 控制台中显示为问号

mysql - Hibernate mysql utf8配置

mysql - MySQL 有没有办法将查询所花费的时间包含在结果表中?

mysql - 使用 Angular 访问数据库

php - mysql查询在数据库表中插入照片详细信息