java如何读取包含阿拉伯语列的excel
阅读excel工作表时,阿拉伯列显示为????其余英文栏目显示良好。我想utf-8问题我不知道我在哪里错过了什么。请做愉快的帮助
FileInputStream fis = new FileInputStream(fileName);
Workbook workbook = new XSSFWorkbook(fis);
System.out.println("Current Encoding " +
"::" + System.getProperty("file.encoding"));
即使在更改以下给定的am后,也会获得当前编码::Cp1252
netbeans 8.0.2
-J-Dfile.encoding=UTF-8
在netbeans\u默认\u选项中添加
jsp(struts 1.3)
<%@page pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<html:form action="/uploadApplicantAction" method="post" acceptCharset="utf-8"
enctype="multipart/form-data">
雄猫8
在web中未注释。xml
<filter>
<filter-name>setCharacterEncodingFilter</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>setCharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在tomcat服务器中添加了utf-8代码。xml
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
connectionTimeout="20000"
redirectPort="8443" />
# 1 楼答案
由于只有您的阿拉伯文文本被呈现为向后问号,因此似乎有可能:
为了验证这一点,创建一个简单的Java应用程序,将一些阿拉伯语文本呈现到控制台非常简单:
只需确保使用适当的字体,如代码示例注释中所述(因为您使用的是NetBeans)。下面是在NetBeans中运行的应用程序的屏幕截图,编辑窗口字体设置为Deja Vu Sans,输出窗口字体设置为Courier New:
在NetBeans的编辑和输出窗口中正确显示阿拉伯语文本后,请修改应用程序以使用相同的字体
完成此操作后,在处理Excel文件时,应用程序的阿拉伯文本应正确呈现。如果没有,那么至少您已经消除了字体作为问题的潜在原因,因此请根据需要更新您的问题
注释
您不应该设置
-Dfile.encoding=UTF-8
From a Java bug report in 2005:根据您在问题中提供的代码和配置详细信息,“UTF-8”设置在六个不同的位置。一旦应用程序正常工作,就值得花时间逐步删除它们,了解哪些设置是必需的,哪些不重要