在向数据库中添加英文测试数据时没问题,但是添加中文测试数据时发现一个错误:1366 - Incorrect string value: ‘\xE5\xBC\xA0\xE4\xB8\x89’ for column ‘name’ at row 1。
解释为:1366 - 字符串值不正确:第1行的列’name’为’\ xE5 \ xBC \ xA0 \ xE4 \ xB8 \ x89’
出现这个问题的原因是你的数据库编码、排序类型不是utf-8的,所以你创建的表的排序规则自然也不是utf-8类型的。如下:people表是正常支持中文的,user表是错误1366的,看他们排序规则区别。
为什么会出现这种情况?
在mysql中新建数据库,如果只写数据库名,没有设置字符集和排序规则,默认字符集为latin1 ,排序规则为latin1_swedish_ci 如下:
我尝试把数据库的字符集设为utf-8,把排序规则设置为utf8_general_ci,同时把表的排序规则也设置为utf8_general_ci,但是仍然不可以用,我看有博主说是mysql默认的配置文件是/etc/my.cnf或者/etc/mysql/my.cnf 我没找到这个文件,我的解决办法就是把表删了重新创建的,然后就可以了。
总结:只要数据库存储中文数据,创建数据库的时候千万别忘了设置字符集为utf-8。
————————————————
版权声明:本文为CSDN博主「三婶儿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43770545/article/details/90482372
总之我的理解是,带上这个
创建文本
长度为0有两种情况,第一种文件名错误,也就是没有这个文件 第二种是确实是没有东西
比如多了abc目录
2023/3/6 21:21:51 这里的 2023/3/6 21:21:57 contains 2023/3/6 21:22:54 而且需要注意endwith 2023/3/6 21:23:37 这里的导包直接用filefiler 2023/3/6 21:23:56 他是接口
2023/3/6 21:25:14 obhect那里,不是string\ 是哪个equal\时讲的 2023/3/6 21:25:41 没有重写
2023/3/6 14:44:17 建 2023/3/6 14:51:15 长度为0有两种情况,第一种文件名错误,也就是没有这个文件 第二种是确实是没有东西
比如多了abc目录
2023/3/6 21:21:51 这里的 2023/3/6 21:21:57 contains 2023/3/6 21:22:54 而且需要注意endwith 2023/3/6 21:23:37 这里的导包直接用filefiler 2023/3/6 21:23:56 他是接口
2023/3/6 21:25:14 obhect那里,不是string\ 是哪个equal\时讲的 2023/3/6 21:25:41 没有重写
只要不够32位就是+的
读写是二进制的数据
2023/3/7 10:38:16 背 2023/3/7 10:41:12 dat一般指的是二进制的数据 2023/3/7 10:44:40 一个write代表一个字节
2023/3/7 16:33:40 GBK国标标准编码 2023/3/7 16:35:21 UTF-8是因为需要与外国沟通,采用utf8编码
有字符集就能转成对应的二进制
2023/3/7 19:36:33 java源码读注释下面还是上面 2023/3/7 19:41:07 读 下面
不看百度,直记忆她的
云帆: 记这三个数0开头全1最大 云帆: 1开头全0是最小 云帆: 全1是最-1
2023/3/7 10:38:16 背 2023/3/7 10:41:12 dat一般指的是二进制的数据 2023/3/7 10:44:40 一个write代表一个字节