在Java中将带有编码UTF-8的字符串转换为TIS620(泰语编码).有什么方法可以做到这一点,并且有任何数据丢失?



作为输入,字符串将是任何采用 UTF-8 编码的泰语字符字符串, 在 Java 中将这种字符串格式从UTF-8隐蔽到TIS620

  1. 这可以通过java.io.Charset实现吗?
  2. 编码后是否有数据丢失或字符大小增加?
  3. 任何
  4. 可用于任何编码转换的 java 实用程序/开源?

我是字符编码的新手,检查了几个在线帮助链接,但找不到任何参考 TIS620 的链接

输入是要转换的输入字符串,例如

๕ค 9 ๖ต 0 ๗จ - ๘ข = ๙ช q ๐ๆ w \"ไ e ฎํา r ฑพ t ธะ y ํั u ๊ี i ณร o ฯน p ญย [ ฐบ ] ,ล ⏎ ⇥ a ฤฟ s ฆห d ฏก f โฃ g ฌเ h ็้ j ๋่ k ษา l ศส ; ซ

编码 - TIS 620

public static String encode(String input, String encoding) {
//   byte[] bytes = input.getBytes();
return new String(input.getBytes(), Charset.forName(encoding));
}

预期输出是给定的 UTF-8 字符串将转换为 TIS 620 编码

事实证明,TIS-620 没有什么特别之处。虽然不是每个Java实现都需要支持它,但主要的全尺寸实现可以。

是的,可能会有数据丢失:Unicode 比 TIS-620 大得多。特别是,不支持字符串中的两个字符:⏎ ⇥ 通常,不支持的字符将替换为 ?但其他行为(如异常(是可能的。

Charset.forName("TIS620")
.encode("๕ค 9 ๖ต 0 ๗จ - ๘ข = ๙ช q ๐ๆ w "ไ e ฎำ r ฑพ t ธะ y ํั u ๊ี i ณร o ฯน p ญย [ ฐบ ] ,ล ⏎ ⇥ a ฤฟ s ฆห d ฏก f โด g ฌเ h ็้ j ๋่ k ษา l ศส ; ซ")
.array()

相关内容

最新更新