gpt4 book ai didi

java - 字符编码

转载 作者:行者123 更新时间:2023-11-30 07:34:26 26 4
gpt4 key购买 nike

我得到了我需要阅读和解析的 html 文件,这个文件可以是简单的英语、日语或任何具有该语言所需的相关字符编码的语言。当文件为具有这些编码中的任何一种的日文时,就会出现问题

  • 转变日本标准语
  • EUC-JP
  • ISO-2022-JP

我尝试使用 FileReader 读取文件,但生成的文件全是乱码。我还尝试将 FileInputStream 与硬编码日语编码一起使用,以检查日语文件是否被正确读取,但结果与预期不符。

FileInputStream fis = new FileInputStream(htmlFile);
InputStreamReader isr = new InputStreamReader(fis, " ISO-2022-JP");

我在字符编码和国际化方面没有太多经验,关于如何使用不同编码读取/写入文件有什么建议吗?

还有一件事,我不知道如何获取我正在阅读的 html 文件的字符编码,我知道我需要以相同的编码写入文件,但不确定如何获取原始文件的编码谢谢,

最佳答案

  • 忘记FileReader存在,它隐含地使用平台默认编码,这使得它几乎没有用。
  • 您使用硬编码编码的代码是正确的,除了编码本身,它有一个前导空格。如果删除它,代码应该可以正确读取 ISO-2022-JP 编码的文件
  • 关于获取HTML文件的字符编码,有多种传输方式
    • Content-Type 中的 HTTP 级别HTTP header - 但这仅在您从网络服务器读取文件时可用,而不是在将文件另存为文件时可用
    • 作为相应的META HTML tag : <META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
    • 或者,如果文档类型是 XHTML,in the XML declaration : <?xml version="1.0" encoding="UTF-8"?>

关于java - 字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5195100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com