每当我尝试保存ñ
它就会变成mysql数据库中的?
。经过一些读数后,建议我必须将我的jsp字符集更改为UTF-8
。由于某些原因,我必须坚持ISO-8859-1
。我的数据库表编码是latin1
。我怎样才能解决这个问题?请帮忙。mysql - 如何保存ñ
回答
更改数据库表的内容编码成UTF-8
下面是整个数据库转换
ALTER DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
的命令,这是单个表转换
ALTER TABLE db_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
我试过但仍然一样。我什至重新启动我的MySQL。 – TheOnlyIdiot
改变你的桌子整理到utf8_spanish_ci
其中ñ
不等于n
但如果你想两个字符等于使用
utf8_general_ci
,而不是
OP问题实际上并不是我正在寻找的,我遇到了一个问题,charÑ被保存为N,这是因为我的表使用了collate utf8_general_ci。 – emerino
转到您的数据库管理与MySQL WorkBench
例如,把引擎InnoDB
和整理,以utf8-utf8_general_ci
。
我试过了,但还是一样的。我什至重新启动我的MySQL。 – TheOnlyIdiot
你在你的问题中声明你需要一个ISO-8859-1后端(latin1)和一个Unicode(UTF-8)前端。这个设置很疯狂,因为前端的设置比数据库中允许的大得多。通过软件堆栈将使用相同的编码,但也只使用Unicode来存储将是有道理的。
正如您应该知道的那样,字符串是一个字符序列的人类概念。在计算机程序中,字符串是而不是即:它可以是查看作为字符序列,但它确实是一对数据结构:字节流和编码。
一旦你明白,传递字符串是真正传递字节和方案,让我们看看谁发送的内容:
- 浏览器HTTP服务器(通常是相同的编码形式的网页,所以UTF-8计划通过
Content-Type
指定。如果缺失,服务器将根据its own strategy选择一个,例如默认为ISO-8859-1或配置参数) - HTTP服务器到Java程序(它是Java到Java,所以编码并不重要,因为我们通过String对象)
- Java客户端到MySQL服务器(Connector/J文档相当令人费解 - 它使用
character_set_server
系统变量,可能由characterEncoding
连接参数覆盖)
要了解问题所在,首先保证该列确实存储为latin1:
SELECT character_set_name, collation_name
FROM information_schema.columns
WHERE table_schema = :DATABASE
AND table_name = :TABLE
AND column_name = :COLUMN;
然后写你从请求到一个日志文件获取Java字符串:
logger.info(request.getParameter("word"));
最后看到的是居然在列:
SELECT HEX(:column) FROM :table
在这一点上,你会有足够的信息来了解问题。如果它真的是一个问号(而不是replacement character),那么它可能是MySQL试图从一个更大的集合(比如说Unicode)中将一个字符转码为一个不包含它的较窄字符。这里奇怪的是ñ belongs to both ISO-8859-1(0xF1,十进制241)和Unicode(U + 00F1),所以它似乎有一个往返行程涉及的第三个字符集(也许是代码页?)。
更多的信息可以帮助(操作系统,HTTP服务器,MySQL版本)
为什么我可以在latin1字段上手动保存ñ字母,但是在将其转换为二进制文件后,由于“未知字符串”错误1366,转换为utf8_general_ci失败?我可以完美地将它看作 - 当保存在表中时,但转换为二进制文件,然后转换为utf8失败。 – andreszs
- 1. 如何查询ñ在MySQL
- 2. Rails3无法将'ñ'保存到Oracle 11g
- 3. 如何保存MySql连接?
- 4. 如何将会话保存到mysql?
- 5. 如何在mysql中保存树?
- 6. Mysql,如何保存“'的特殊字符?
- 7. 如何OBJ保存分贝laravel(MySQL的)
- 8. 如何在MySQL中保存图片
- 9. 如何在mysql中保存链接?
- 10. 如何在mysql中保存符号?
- 11. 如何将php ZipArchive保存到MySQL blob?
- 12. 如何将C#float保存到Mysql float?
- 13. 保存在MySQL
- 14. 如何加入ñ名单在Python 3
- 15. RxJS:如何使用拖放ñ下降
- 16. Solr如何使用普通字符N搜索ñ和Ñ,反之亦然
- 17. 更换由\\ñ
- 18. 保存MySQL设置
- 19. 保存在MySQL的
- 20. 保存datagridview到mysql
- 21. 使用vb.net无法在MySQL管理员数据库中保存“ñ”之类的特殊字符
- 22. 如何在php中保存多个序列化数据mysql mysql
- 23. Sequel Pro - 如何在字符中阅读,如Ö,ü,ç,ñ,ß
- 24. 如何保存
- 25. 如何保存
- 26. 如何保存Facebook数据
- 27. 如何保存在触发
- 28. Solr的索引ñ
- 29. 萨姆Ñ在树
- 30. 如何在Yii之前保存保存
您的表编码改为UTF – swapnesh
当您检索值仍然'?'或打印作为'N'?它可能是您用来查看数据库的程序的字符集问题,但对您的应用程序来说不是问题。 –
@CarlosCampderrós当我检查我的数据库表时,它显示? – TheOnlyIdiot