如何在Java中转换字符集?

时间:2018-05-18 14:03:09

标签: java ftp sftp

SftpFile agencyFile = (SftpFile)agencyiter.next();

LOGGER.info(" agencyFile.getAbsolutePath() "+ agencyFile.getAbsolutePath());

输出:

agencyFile.getAbsolutePath() /Agency_Ja????n

在上面的代码中,我得到agencyFile.getAbsolutePath()???这样的特殊字符。

我该如何避免它们?

我还尝试了以下代码,但得到了相同的输出。

byte[] ptext = agencyFile.getAbsolutePath().getBytes(ISO_8859_1); 
String value = new String(ptext, UTF_8); 

1 个答案:

答案 0 :(得分:1)

只要您在java中,就不必担心字符串的字符编码。如果您的字符串跨越Java应用程序的边界到外部世界,您只需要打扰,如序列化字节数组(文件内容,套接字流等),称为I / O.

您的ptext是否已包含值0x3F(?的字节代码)?

如果是,那么在构造SftpFile实例时已经出现问题。调试该代码点并验证输入的内容是文件实例的路径(以及它来自何处)。

如果否:您的控制台或文件查看器无法打印出一个字符。配置Logger以写入UTF-8输出。然后每个常用的编辑器(如Notepad ++,UltraEdit等)都可以显示它。当然,您的操作系统也必须安装相应的字体。

相关问题