繁体   English   中英

字符编码

[英]Character encoding

我得到了需要阅读和解析的html文件,该文件可以使用简单的英语,日语或任何其他语言,并且具有该语言所需的关联字符编码。 当文件使用这些编码中的任何一种为日语时,就会发生此问题

  • Shift JIS
  • 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级别上-但这仅在您从Web服务器读取文件时可用,而在另存为文件时不可用
    • 作为相应的META HTML标签<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
    • 或者,如果文档类型是XHTML,则在XML声明中<?xml version="1.0" encoding="UTF-8"?>

暂无
暂无

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

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