如何使用Java程序读取文件名中的非英文字符

时间:2011-01-17 05:18:41

标签: java

我正在尝试在我的发件箱中阅读邮件,该邮箱通常包含一个附加的pdf文件。如果pdf文件名包含英文字符,则下面的函数可以正常工作。但是如果文件名包含任何非英文字符(例如, filename1(chinesecharacter).pdf ),我的函数将无法读取它。谁能告诉我在我的功能中需要做些什么改变?

2 个答案:

答案 0 :(得分:0)

只需根据带有英文字符的值范围检查ASCII(或Unicode?)值。每个字符对应于其字符集中的数字。

或者您可以创建一个包含所有英文字符的数组,然后根据该数组进行检查。 Java中也可能有一个API函数。

答案 1 :(得分:0)

此行表示您可能在解码非ISO 8859字符集时遇到问题,例如UTF-8,由于RFC2822编码文件名的处理不当:

if(fileName.startsWith("=?iso-8859"))
{
  String strFolder = strFolderName.substring(strFolderName.lastIndexOf("/")+1,
                                             strFolderName.length());
  fileName = strFolder + ".pdf";
}

http://en.wikipedia.org/wiki/MIME#Encoded-Word