gpt4 book ai didi

mysql 数据被 ñ 字符截断

转载 作者:行者123 更新时间:2023-11-29 23:16:51 26 4
gpt4 key购买 nike

我正在将数据从本地文件上传到我的服务器中的 MySQL 数据库。

所以我使用以下命令:

mysql -u dude --password --local-infile
use rest_db;
LOAD DATA LOCAL INFILE '/root/scripts/asistencia.txt' INTO TABLE asistencia FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

所以我得到:

Query OK, 765 rows affected, 15 warnings (0.01 sec)
Records: 765 Deleted: 0 Skipped: 0 Warnings: 15

警告是:

+-------+------+----------------------------------------------+
| Level | Code | Message |
+-------+------+----------------------------------------------+
| Note | 1265 | Data truncated for column 'nombre' at row 76 |

但是当我检查本地 PHPMYADMIN 的记录时,我发现这些字段没有显示“ñ”字符,而是显示“ñ”字符。

我尝试将此字段 (VARCHAR) 设置为“utf8_spanish2_ci”或“utf8_spanish2_ci”或“latin1_spanish_ci”,但行为是相同的。

有什么我错过的提示吗?

顺便说一句,记录是:“AVENDAñO”,但我进入数据库“AVENDAñO”

谢谢。

最佳答案

我不认为被截断的警告是由于特殊字符造成的。我认为您得到这个结果是因为您要导入的列对于这 15 条记录来说长度太短。您可能只需要增加列的长度。

在处理不同的字符集时,这些类型的编码问题可能会变得复杂。在这些情况下,仅更改排序规则并不能解决问题,您需要更改 CHARSET,如 @hd1 提到的。只有在更改 CHARSET 后,您才应该担心排序规则。

为了安全起见,请在更改数据库/表之前将其导出。

我首先将表转换为 utf8,因为它现在已成为标准。

ALTER TABLE tbl_name
CONVERT TO CHARACTER SET utf8

通过这样做,它还会将表和列的 CHARSET 更改为 utf8,但您可能仍需要手动将列的排序规则更改为 utf8_general_ci (默认)。如果 utf8_general_ci 不包含特定字符,您可以使用 utf8_spanish_ci

如果您想要更改默认字符集(对于新列)...

ALTER TABLE tbl_name
DEFAULT CHARACTER SET utf8

这里有一些有用的文档:

10.1 Character Set Support
10.1.12 Column Character Set Conversion
10.1.13.1 Unicode Character Sets

关于mysql 数据被 ñ 字符截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27714293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com