JSP mysql和utf8

时间:2014-07-17 02:51:45

标签: java mysql jsp utf-8

我正在尝试使用insert语句将我在JSP页面中编码的数据存储在mysql数据库中。我已将mysql数组排序设置为utf 8.我已经使用了

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

语句和我已经对tomcat服务器的server.xml进行了适当的修改......

任何其他想法???

2 个答案:

答案 0 :(得分:1)

设置整理greek_general_ci

ALTER TABLE <table name> CONVERT TO CHARACTER SET utf8 COLLATE greek_general_ci;

修改

在MySQL Workbench中右键单击table-&gt; Alter Table - &gt;将Collat​​ion更改为greek_general_ci或greekbin

答案 1 :(得分:0)

在我看来,您正在尝试使用希腊语字符集或其他没有等效Unicode字符的编码来读取UTF-8字符(数据以UTF-8的形式输入)。

当字节(或字节)与您正在使用的编码没有任何关联时,会显示问号或等效符号。您正在解析客户端不理解的有效字节,没有表示。

我建议您在继续之前阅读this very helpful article

  

例如,您可以为Hello(U + 0048)编码Unicode字符串   U + 0065 U + 006C U + 006C U + 006F)ASCII或旧的OEM希腊语编码,   或希伯来语ANSI编码,或任何数百种编码   到目前为止已经发明了一个问题:一些字母可能   没出现!如果没有Unicode代码点的等价物   您尝试使用您尝试代表的编码进行表示   它,你通常会得到一个小问号:?或者,如果你真的   好,一个盒子。你得到了什么? - &GT;

此问题也不在您的数据库或表/列编码中。它仅适用于您使用存储过程的情况。

确保 您的浏览器在输入或显示信息时以UTF-8运行。使用Chrome,您可以转到工具&gt;编码时,应在浏览器中打开JSP后设置Unicode UTF-8。您还可以在“网络”选项卡中调试请求/响应。如果要输入UTF-8数据,请将其读作UTF-8。

如果您在JSP中执行此操作,则无需更改Tomcat配置或使用HttpFilter设置编码。我只使用以下配置来模拟您的问题:

ISO-8859-7是一个希腊语编码我曾经读过unicode并模拟你的问题

<%@ page language="java" contentType="text/html; charset=ISO-8859-7" pageEncoding="ISO-8859-7"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-7">
</head>
</html>

如果这没有帮助,我会要求您发布申请的完整详细信息和源代码。