Java 在MySQL中存储韩文字符
我有一个表单,但每次我提交韩文字符时,它都会以问号的形式出现在我的phpmyadmin数据库中,或者非常复杂。我希望能够在MySQL数据库表中使用拉丁和亚洲字符提交条目,我还在Eclipse中使用java 我已经做了以下工作:Java 在MySQL中存储韩文字符,java,mysql,utf-8,phpmyadmin,Java,Mysql,Utf 8,Phpmyadmin,我有一个表单,但每次我提交韩文字符时,它都会以问号的形式出现在我的phpmyadmin数据库中,或者非常复杂。我希望能够在MySQL数据库表中使用拉丁和亚洲字符提交条目,我还在Eclipse中使用java 我已经做了以下工作: 在我的jsp文件中添加了这个 contentType=“text/html;charset=UTF-8”pageEncoding=“UTF-8” 修改了myserver.xml文件中的连接器标记,以便 URIEncoding=“UTF-8” 修改了连接的URL conn
- 在我的
文件中添加了这个jsp
contentType=“text/html;charset=UTF-8”pageEncoding=“UTF-8”
- 修改了my
文件中的连接器标记,以便server.xml
URIEncoding=“UTF-8”
- 修改了连接的URL
conn=DriverManager.getConnection(“jdbc:mysql://localhost/login?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8“, "根",代码>
- 在Servlet中处理表单数据的我的doPost方法中添加了这一点
response.setContentType(“text/html;charset=UTF-8”)代码>
我建议您将方程式中除数据库之外的所有内容都去掉,以确保问题真正出在数据库上。首先检查十六进制的值:
SELECT HEX(column_name) FROM table_name
如果在看到“”的地方看到“3F”,则很可能是来自web应用程序的数据有问题(更多帮助,如使用设置名称
和更改MySQL INI文件)。您还应该尝试手动将十六进制插入到数据库表中,并将其正常地和十六进制地选择回来,以确保数据正确地输入和输出
如果仍怀疑数据库有问题,请确保表正确编码字符集(即默认字符集),例如(或):
当尝试使用utf8/utf8mb4时,如果您看到问号(普通的,不是黑钻石)
- 要存储的字节未编码为utf8。解决这个问题
- 数据库中的列是字符集utf8(或utf8mb4)。解决这个问题
- 此外,检查读取期间的连接是否为utf8
尝试使用utf8/utf8mb4时,如果您看到带有问号的黑钻石, 其中一种情况是: 案例1(原始字节不是utf8):
- 要存储的字节未编码为utf8。解决这个问题
和插入
的连接(或选择
)不是utf8/utf8mb4。解决这个问题设置名称
- 另外,检查数据库中的列是否为字符集utf8(或utf8mb4)
的连接(或选择
)不是utf8/utf8mb4。解决这个问题设置名称
- 另外,检查数据库中的列是否为字符集utf8(或utf8mb4)
meta charset=UTF-8>时才会出现黑钻石
注:euckr与utf8不同。它可以处理,但需要不同的步骤。请提供屏幕截图(或剪切粘贴)以代替韩文字符。谢谢。我的问题是连接没有对数据进行编码,所以这确实是我的web应用程序的问题。我用这个修好了,谢谢。这有助于引导我关注问题可能是什么:更完整的是我从中得到的问答:
SHOW CREATE TABLE table_name