【问题标题】:Getting Unicode of text entered in regional language in JTextArea (Java)在 JTextArea (Java) 中获取以区域语言输入的文本的 Unicode
【发布时间】:2014-02-23 13:37:23
【问题描述】:

我正在构建一个应用程序,我希望用户以我通过更改其字体实现的其他一些区域语言输入文本。现在但是在后端我希望它的Unicode被提取但是我怎么能实现它..??如果我复制该字符串并在任何地方输入它只是英语..?? Java 是如何了解这门语言的......??

这是代码:-

 /* some code */   
    static Font f4=new Font("AnmolLipiThick",Font.BOLD ,15);
/* some code */
                ta = new JTextArea();
                //ta.setFont(f2);
                ta.setFont(f4);
                //ta.setWrapStyleWord(false);
                ta.setBackground(Color.ORANGE);
                ta.setLineWrap(true);
                c.gridy = 2;
                c.weighty = 0.4;
                c.fill = GridBagConstraints.BOTH;           
                frame.add(ta,c);
/* some code */

例如在我上面的 java 代码中,字体是旁遮普语的..!! Java 怎么会知道这一点,以至于它从那个代码平面开始 Unicode……!!如何实现它请帮助我..?

【问题讨论】:

  • 我正在搜索代码,我会尽快找到,我会发布。
  • 请各位大侠,有没有人可以至少有提示..!!
  • 拜托你这么不清楚......
  • hmm,,,,@beny1700 什么不清楚兄弟..我希望问题很清楚,有一个文本区域,用户可以在其中输入不同的语言,如法语、日语、旁遮普语(在我的案子)。我想要一种简单的机制,通过这种机制,java 可以理解用户正在输入的语言并提取其 unicode..!!现在还有什么不清楚的..??

标签: java unicode


【解决方案1】:
 <p align=right><div id="google_translate_element"></div><script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en', layout: 
google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
}
</script><script type="text/javascript"        

 src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit">
 </script>
</p>

 Try with it if still not able to get it plz comment below,I am still need a
lot of    searching because I have forget where I have put that file.

【讨论】:

  • 如果我没记错的话,你在这里使用在线工具,但是请阅读我上面的评论..!!
  • 办公室很忙,有空我会尽力帮助你的。
【解决方案2】:

在写这篇文章的那一刻,几乎不可能理解你想要什么。但是,我会在黑暗中试一试,希望我所说的可以帮助你。

Java 中的每个字符是 2 个字节。每个字节可以保存一个代码点,或者两者都可以保存一个代码点。 Java 的字符因此是 UTF-16 编码的。如果字符的代码点大于0xFFFF,那么它将使用 2 个字符(代理对)进行编码

您可以在此处阅读有关处理此问题的更多信息:http://www.oracle.com/us/technologies/java/supplementary-142654.html

TLDR(你需要这些):

Character.toCodePoint(char high, char low)
Character.toChars(int codePoint)
Character.codePointAt(char[] a, int index)
Character.isHighSurrogate(char ch)
Character.isLowSurrogate(char ch)
Character.isLetter(int codePoint)
Character.isValidCodePoint

如果您需要使用本机字符串:

然后你可以像这样来回传递给Java:

void Java_natives_toUTF8(JNIEnv* env, jobject obj, jstring utf16)
{
    const char* utf8 = reinterpret_cast<const char*>(env->GetStringUTFChars(utf16, NULL));

    //Do whatever with utf8.. it is UTF8 format.

    env->ReleaseStringUTFChars(utf8, reinterpret_cast<const char*>(utf16));
}

【讨论】:

  • hmm,,,我认为问题很简单我有一个文本区域,用户可以在其中输入不同语言的文本。例如西班牙文、法文、旁遮普文(在我的情况下),只需设置字体。我想要 Java 了解用户输入的语言然后可以提取代码的机制..!!
猜你喜欢
  • 2014-03-23
  • 1970-01-01
  • 1970-01-01
  • 2016-10-20
  • 2017-06-03
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多