我正在尝试使用insert语句将我在JSP页面中编码的数据存储在mysql数据库中。我已将mysql数组排序设置为utf 8.我已经使用了
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
语句和我已经对tomcat服务器的server.xml进行了适当的修改......
任何其他想法???
答案 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;将Collation更改为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>
如果这没有帮助,我会要求您发布申请的完整详细信息和源代码。