ISO编码与日语帧文件

时间:2011-04-11 21:39:57

标签: java utf-8 character-encoding framemaker

我有一个日语内容,正在使用某个工具转换为MS帮助。问题是第三方工具没有使用utf-8编码,而是使用垃圾字符创建.xml:

    <param name="Name" value="&#195;&#137;A&#195;&#137;v&#195;&#137;&#195;&#164;&#195;&#137;P&#195;&#133;&#195;&#137;V&#195;&#137;&#195;&#161;&#195;&#137;&#195;&#172;&#195;&#135;&#8224;&#195;&#135;'&#195;&#135;&#195;&#139;&#195;&#135;&#195;&#152;&#195;&#133;&#501;&#195;&#135;&#195;&#039;&#195;&#135;&#195;&#039;]">
    <param name="Name" value="Test File">
    <param name="Local" value="applications.htm#Xau1044547">

我尝试使用编码,它现在产生:

    <param name="Name" value="ÉAÉvÉäÉPÅ">
    <param name="Name" value="Test">
    <param name="Local" value="applications.htm#Xau1044547">

但是使用utf-8编码(另一种工具),正确的输出应该是:

    <param name="Name" value="アプリケーション">
    <param name="Name" value="Small Business アプリケーションの起動 ">
    <param name="Local" value="applications1.html#wp1044548">

我是否可以使用任何java API对文件进行解码和编码,以获得正确的输出。我不确定该工具使用的是什么,但我猜它的“ISO-8859-1”。

感谢。

2 个答案:

答案 0 :(得分:1)

您的问题是您需要正确使用两个编码:

  • 找出“日语内容”使用的编码
  • 确保该工具正确使用该编码来读取该内容
  • 确保该工具使用UTF-8对输出文件进行编码,并在其标题中正确声明

答案 1 :(得分:0)

从最上面的示例中可以看出,此时您的编码已经损坏。用HTML character escape codes(十进制NCR)表示的第一个“名称”属性的值。

话虽如此,第二个样本(值=“ÉAÉvÉäÉPÅ”)和第三个样本(值=“アプリケーション”)与第一个样本不匹配。

如果HTML字符转义确实是输出应该是什么,那么输出编码将是ASCII或其他一些变体,然后该值将是:

value="&#12450;&#12503;&#12522;&#12464;&#12540;&#12471;&#12519;&#12531;"

我认为您需要重新确认第三方工具如何输出XML。