utf-8编码、java、mysql和表单插入问题
我有一个utf-8MySQL数据库 在我的jsp文件中,我使用:utf-8编码、java、mysql和表单插入问题,java,mysql,jsp,encoding,utf-8,Java,Mysql,Jsp,Encoding,Utf 8,我有一个utf-8MySQL数据库 在我的jsp文件中,我使用: <%@ page pageEncoding="UTF-8"%> ... <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 在数据库中插入一个“错误”字符串 提交后,如果我打印的输入文本内容已经包含“奇怪”字符 当我使用utf-8时,我无法成功地理解我必须更改的内容。首先,DB编码是utf-8这一事实是不够的,您
<%@ page pageEncoding="UTF-8"%>
...
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
在数据库中插入一个“错误”字符串
提交后,如果我打印的输入文本内容已经包含“奇怪”字符
当我使用utf-8时,我无法成功地理解我必须更改的内容。首先,DB编码是utf-8这一事实是不够的,您还应该通过在JDBC URL中附加
useCodenction=true&characterEncoding=utf-8
来指定驱动程序连接处的编码
其次,页面编码不会影响浏览器对文本进行编码的方式。您还应该注意在请求级别进行编码:
request.setCharacterEncoding(“UTF-8”)
在将输入发送到DB之前,可以在服务器代码中添加一些日志来检查输入?@mthmulders:它已经“错误”,即它包含“奇怪”chars,然后返回一步,使用类似于或Chrome Developer的工具来检查数据是如何发送到服务器的……看看这个@mthmulders:通过使用firebug,在参数部分我看到了正确的字符串(Testèèáùìé),在源代码部分有“标题=测试%C3%A8%C3%B2%C3%A0%C3%B9%C3%AC%C3%A9%E2%82%AC“请注意,这些JDBC URL参数特定于MySQL JDBC驱动程序,而不是其他驱动程序。还请注意,以这种方式设置请求编码只会影响POST请求,而不会影响GET请求。请进一步参阅本文中列出的提示/解决方案。事实就是这样though@orid:我正在使用tomcat及其连接池。当我将usencoding=true&characterEncoding=UTF-8
附加到驱动程序连接时,我获得了一个错误(对实体“usencoding”的引用必须以“;”分隔符结尾)。如果只在连接器中放置characterEncoding=UTF-8,然后用URIEncoding=“UTF-8”更改server.xml,则没有任何效果。@Criket:请参阅我在您的原始帖子下面附加的链接。这实际上是一个循序渐进的教程。它还展示了如何使用Tomcat连接池设置编码。可能是因为您没有对ampersand@orid:谢谢。现在问题在于request.setCharacterEncoding(“UTF-8”)。我要做一些测试。
à è é à ò ù €