所以我使用的语言是Java,使用JSP-s和Servlets我尝试给html应该打印的内容,但它只是打印问号。我的数据在MySQL中。我试图将所有内容都更改为UTF-8,包括tomcats,xml和html文档,JSP和MySQL工作台的字符编码,但没有帮助。一个重要的符号 - System.out.println(...);
函数可以正确打印控制台中的文本(如预期的那样)。请帮忙。为什么浏览器显示来自MySQL数据库的问号?
回答
- 客户端中的字节必须是utf8编码的。
- 连接必须确定这一事实。对于servelet
resource.setContentType ("text/html;charset=utf-8");
。 - 表格/列必须是
CHARACTER SET utf8
(或utf8mb4
)。 - 输出必须声明utf8。对于JSP:
<%@ page contentType="text/html; charset=UTF-8" %>
对于多个问号,通常的缺陷在表定义中。或者,源字节和连接可能有问题。
要检查什么是表,请了一些非英文字符(S)提供从这个输出:
SELECT col, HEX(col) FROM ...
选择列的输出。从...十六进制(COL)是针对这些项目的1“D588D59ED5BE20D5A720D5A3D680D5A5D5AC203C3CD580D5A1D680D5A9D5A1D5A3D5B8D5B2D5AB20D5B3D5A1D5B4D683D5B8D680D5A4D5B6D5A5D680D5A83E3E3A”。我现在可以假设什么? –
你提到的所有4点都是用一些小的差异完成的,recource.contentType()是否意味着response.contentType()?在MySQL工作台中也使用utf-8_general_ci。 –
看起来像使用utf8编码的亚美尼亚字符。所以,数据“正确”存储。所以,需要看看输出端。如果你可以从Java获得十六进制,看看它是否看起来像'D5xx'。并查看html输出以查看它是否表示“charset = UTF-8”,可能位于开头附近的“meta”标签中。 –
- 1. 来自mysql数据库的图像不显示在浏览器
- 2. 为什么问号在网络浏览器中显示?
- 3. 单引号显示在浏览器菱形问号(没有数据库或PHP)
- 4. Safari浏览器显示问号
- 5. 从ASP.net的浏览器中显示来自Oracle数据库的PDF
- 6. MySQL数据库多号显示为行
- 7. 如何在浏览器中显示来自数据库的记录?
- 8. 为什么我的ListView不显示来自SQLite数据库的数据?
- 9. Safari浏览器的状态栏上为什么显示为false?
- 10. 来自MySQL数据库的Emojis显示为'?'
- 11. 显示来自数据库的数据
- 12. 为什么Neo4j浏览器显示两个不同的版本号?
- 13. 在浏览器中显示BLOB数据
- 14. 来自多个浏览器选项卡的数据库轮询
- 15. 为什么浏览器不能显示本地的ASP.NET文件?
- 16. 为什么谷歌浏览器不显示我的HTML代码?
- 17. 为什么浏览器显示较小的favicon?
- 18. 在TKinter中显示来自数据库的数据的问题
- 19. Android - 显示来自MySQL的数据
- 20. 来自浏览器的PKCS#11访问
- 21. 访问来自浏览器的Docker Jenkins
- 22. 为什么图像不显示在浏览器中?
- 23. 为什么浏览器在部署后不显示图标
- 24. SVG foreignObject不显示在任何浏览器上,为什么?
- 25. 为什么日期显示不同于Excel到浏览器
- 26. VB.NET为什么Web浏览器控件不能显示在Instagram.com
- 27. Monotype Corsiva为什么不在浏览器中显示?
- 28. 什么是浏览器称为(指数)
- 29. 简单的浏览器显示问题
- 30. Mongodb:为什么显示数据库不显示我的数据库?
和浏览器也使用UTF-8? – Tom
确实是 –
每个字符串有一个问号?还是很多?两种不同的情况。 –