繁体   English   中英

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

[英]How to read non-English characters in filename, using Java programme

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

只需简单地检查ASCII(或Unicode?)值与英文字符的值范围即可。 每个字符在其字符集中都对应一个数字。

或者,您可以创建一个包含所有英文字符的数组,并对照该数组进行检查。 Java中可能还会有一个API函数。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM