Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
utf-8编码、java、mysql和表单插入问题_Java_Mysql_Jsp_Encoding_Utf 8 - Fatal编程技术网

utf-8编码、java、mysql和表单插入问题

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这一事实是不够的,您

我有一个utf-8MySQL数据库

在我的jsp文件中,我使用:

 <%@ 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”)。我要做一些测试。
à è é à ò ù €