Java 7 错误:通过 Unicode 文字显示泰卢固语

Posted

技术标签:

【中文标题】Java 7 错误:通过 Unicode 文字显示泰卢固语【英文标题】:Java 7 Bug: Displaying Telugu through Unicode literals 【发布时间】:2013-02-08 13:12:54 【问题描述】:

在 Java 7 中通过 unicode 显示泰卢固语时,java 渲染混合不正确。

例如,这里有一个简单的 sn-p 用于在 html 中显示一个单词。它工作得很好。所有浏览器都能正确显示文本。

<!DOCTYPE html>
<html>
<body> &#x0C05&#x0C2E&#x0C4D&#x0C2E </body>
</html>

但是,在 Java 中使用相同的文字(这里我将相同的文本设置到文本区域,显示会混乱。

    Font text_font = new Font ("Gautami", Font.PLAIN, 30);
jtaInput.setFont(text_font);
jtaInput.setText("\u0C05\u0C2E\u0C4D\u0C2E");

有没有人在 unicode 字符渲染的上下文中遇到 Java 7 的问题?有什么技巧/想法可以克服这个问题吗?

谢谢 湿婆神

【问题讨论】:

అమ్మ - 由 HTML 呈现(正确),అమమ్ 将由 JAVA 显示(错误)。我只是在这里展示一个例子。所有辅音混合都会出现相同的渲染问题。比如అక్క, రాష్ట్రము等不能在java中渲染 如果你做&lt;body style="font-family: Gautami;"&gt;&amp;#x0C05&amp;#x0C2E&amp;#x0C4D&amp;#x0C2E &lt;/body&gt;,它仍然在html中工作吗?那么可能是swing渲染器的问题。 是的。即使我在那里明确指定字体名称,它仍然可以在 html 中使用。 java 7渲染中似乎存在错误。这是一个毁灭性的错误……您在 java 7 中开发的任何泰卢固语应用程序都可能变得无用。 【参考方案1】:

尝试使用不同的字体;在 Java 5 和 Java 6 中工作的字体在 Java 7 中停止工作。当我移动到新字体时,显示恢复正常。

【讨论】:

以上是关于Java 7 错误:通过 Unicode 文字显示泰卢固语的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中编写 3 个字节的 unicode 文字?

java复习StringStringBuffer以及StringBuilder

Unicode码和Emoji表情

文字编码和Unicode

如何在 MFC 多字节应用程序中显示西里尔文字?

计算机怎么显示英文中文的?