Mysql Ñ;可能还有其他被截断的特殊字符
我试图在数据库中的一个表中填充一些行,这些行包含一些拉丁字符,特别是“ñ”。此列表来自excel,我在其中转换为csv文件 我的CSV文件包含以下内容: "1619","137601000","CITY OF LAS PIÑAS","METRO MANILA","NCR","National Capital Region","MM" "1620","137602000","CITY OF MAKATI","METRO MANILA","NCR","National Capital Region","MM" "1627","137604000","CITY OF PARAÑAQUE","METRO MANILA","NCR","National Capital Region","MM" 我还尝试将字符集添加到load语句中,但得到了相同的结果:Mysql Ñ;可能还有其他被截断的特殊字符,mysql,mariadb,Mysql,Mariadb,我试图在数据库中的一个表中填充一些行,这些行包含一些拉丁字符,特别是“ñ”。此列表来自excel,我在其中转换为csv文件 我的CSV文件包含以下内容: "1619","137601000","CITY OF LAS PIÑAS","METRO MANILA","NCR","National Capital Region","MM" "1620","137602000","CITY OF MAKATI","METRO MANILA","NCR","National Capital Region"
LOAD DATA LOCAL INFILE '/my/path/to/file.csv' INTO TABLE mytable CHARACTER SET utf8 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;
但是在加载之后,当我检查表的内容时,包含“ñ”的字段被截断
| 1619 | 137601000 | CITY OF LAS PI | METRO MANILA | NCR | National Capital Region | MM |
| 1620 | 137602000 | CITY OF MAKATI | METRO MANILA | NCR | National Capital Region | MM |
| 1627 | 137604000 | CITY OF PARA | METRO MANILA | NCR | National Capital Region | MM |
我的桌子上放着这个:
CREATE TABLE `location` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`code` int(11) NOT NULL,
`city` varchar(60) NOT NULL,
`province` varchar(30) NOT NULL,
`region` varchar(4) NOT NULL,
`regionname` varchar(40) NOT NULL,
`area` varchar(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
操作系统变体和版本
CentOS Linux release 7.1.1503 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.1.1503 (Core)
CentOS Linux release 7.1.1503 (Core)
MySQL变体和版本
CentOS Linux release 7.1.1503 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.1.1503 (Core)
CentOS Linux release 7.1.1503 (Core)
- mysql版本15.1发行版5.5.41-MariaDB,用于Linux(x86_64),使用readline 5.1
截断通常是由
- 客户使用拉丁字母1编码的重音字符,以及
在SET NAMES utf8
期间生效(或者在您的情况下INSERT
)LOAD DATA
也就是说,csv文件实际上不是utf8格式。在
加载数据
中尝试一些其他字符集
,可能是latin1
可以在SQLFIDLE上重新创建吗?如何在SQLFIDLE中复制批加载?我把文件放在哪里?:(我用加载数据在我的MariaDB上试过,但没有重新创建它。@Dylan Su,我试着在SQLFIDLE上插入一个带有“ñ”的条目,当我试着查询它时,它没有截断字段。你觉得怎么样?我一点也不知道