【问题标题】:Japanese in JTextAreaJTextArea 中的日语
【发布时间】:2013-03-04 15:35:44
【问题描述】:

我有一个包含日语单词的数据库。另外,我有读取这些单词并将它们放入 JTextArea 的算法。 问题是我看到的是矩形而不是日本标志。 但是当我从 JTA 复制这样一组矩形 (ctrl+c) 并将它们放入例如。 TotalCommander 或 Winword 文件的命令输入,出现的标志正确显示。但是只在Win7下。 因为我在winXP下的虚拟机上运行Eclipse,所以我有能力复制矩形也可以在winXP下命令输入TotalCommander。在我的 Java 应用程序中仍然存在矩形。 这意味着 JTA 中有关于特定标志的信息,但 JTA 无法解释此信息。

当然我已经安装了正确的字体。

我尝试了很多字体方法:

textArea.setFont(new Font(blablabla)); 

和类似的,但没有效果。 我该怎么办?

【问题讨论】:

  • 我不同意。这顶多是类似的。除了解决方案不起作用。请注意,我不需要从键盘输入任何文本到 JTestArea。我只需要从外部流中显示它。
  • 请提供Short, Self Contained, Correct (Compilable), Example。问题可能是,您的文件编码与 UTF8 不匹配。您可以以编程方式将 JTextArea 的内容设置为日文字符吗?那么字体本身就不是问题了。我也用 Windows XP 尝试过它,它在这里工作得很好。 ideone.com/GDfDbb
  • 提供代码并不容易,因为我尝试阅读 MySQL DB (InnoDB) 的很大一部分。我不认为这是 UTF 问题。在这个数据库中使用了俄语、德语、波兰语、葡萄牙语,它们没有问题。只有日语。我显然尝试使用 Locales/setFont 甚至其他技巧,但它什么也没给我。我使用这种字体:dafont.com/japanese.font 你能给我一些例子,你如何使用你引用的主题中的代码吗?
  • 是的,请看下面我的回答。该字体不包含所有日文字符。

标签: java database jtextarea truetype


【解决方案1】:

您的 JTextArea 的问题很可能是您使用的字体不适用于 UTF-8 和日语。该字体不提供从 UTF-8 值到字符的映射表。即 0x41 在 ASCII 中,在 UTF-8 中,甚至在 SHIFT-JIS 中是字母 'A' - 但是你只是链接的字体,将 0x41 解析为汉字字符。并且整个字体根本不包含平假名和片假名字符 - 另请参阅您从 here 获得此字体的网站上的 cmets 部分。

使用 ChapMap 后,它有一个 WSIfonts TAG 并做NOT! 支持所有汉字它只有 90 个字符,每个字符分配 1 个字符,除了 Caps。

这是一种中文字体 - 不是日文字体。但它甚至不会提供所有汉字,也没有包含有用的映射表 - 所以它非常没用。

尝试使用另一种字体 - 如果它包含真正的日文字符并提供适用于 UTF-8 的映射表,应该可以正常工作。

您可以找到可以使用的字体,即here

【讨论】:

猜你喜欢
  • 2014-01-24
  • 1970-01-01
  • 2014-03-23
  • 2010-10-17
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多