2014-05-12 63 views
0

文件上传我有一个JSP/Servlet应用的工作原理如下:泰国字符显示?????标记在JSP

1-从JSP页面

2-阅读的内容上传一个Excel工作表和它们的Servlet加入到MySQL/Java代码

,当我在Excel中有阿拉伯字符将被添加到数据库作为

问题???? 在JSP文件我改变网页编码如下:

   <%@ page language="java" 
       contentType="text/html; charset=utf-8" 
       pageEncoding="utf-8"%> 
       <meta http-equiv="Content-Type" 
      content="text/html; charset=utf-8"> 
在将文件上传输入我添加的enctype的HTML形式

=

   "multipart/form-data;charset=utf-8" 

我测试的MySQL和它支持阿拉伯字母(我可以通过控制台插入和选择),当我尝试从阿拉伯数据库中读取某些内容并在JSP中查看时,它工作正常!它正在我本地系统上正确工作,但是当我在server.then上部署war文件时上传它显示的Excel文件?????在数据库中标记

我认为问题出在上传的部分!任何人都可以帮忙吗?

谢谢

回答

0

我认为问题是Excel文件的编码。如果您正在从其他来源(工作表)读取数据,则HTML的编码无关紧要。如果Excel是从Windows系统上载,编码可能不是UTF-8,但 CP-1252 CP-1256

UPDATE:Windows-1252是一个拉丁文,阿拉伯文characteres Windows使用windows-1256,基于ISO 8859-6。对于每个字符,UTF-8使用1到4个字节,而ISO 8859每个字符只使用一个字符,所以如果将两者混合使用,问题将会增加。

+0

CP-1252什么泰国焦炭连接?当我们把这个 – user3627885

0

当您读取servlet中的excel文件时,应该读取该文件的UTF8流。 然后,当您将数据插入到数据库中,用于插入必须声明为UTF8连接为例

DriverManager.getConnection("jdbc:mysql://"+host+"/"+dbName+"?useUnicode=true&characterEncoding=UTF-8",user,pass);