java - Java中如何转换字符集?

标签 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); 

最佳答案

只要您使用 java,您就不必担心字符串的字符编码。您只需要担心您的字符串是否跨越 Java 应用程序的边界到达外部世界,作为序列化字节数组(文件内容、套接字流等),称为 I/O。

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

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

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

关于java - Java中如何转换字符集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50413069/

相关文章:

java - Google App Engine 数据存储事务的两种不同方法——使用哪一种?

c# - 如何从通过 FtpCommand 运行的 FTP 命令获取结果?

c# - .Net FtpWebRequest 有时会失败

linux - 将文件从 Windows 传输到 Linux,而无需使用第 3 方软件且仅使用 Shell.Application

perl - 如何在 Perl 中使用 NET::SSH2 的 SFTP 模块按时间顺序列出文件?

java - 当 applicationContext.getBean(beanName) 明显存在时,为什么它返回 null?

java - 尝试使用 Microsoft Translator API 进行翻译时出现 unknownHostException

java - java服务器存在安全风险?

java 。从 FTP 读取文件但不要下载整个文件

linux - 使远程目录保持最新