Tej*_*jas 0 java internationalization
我在Java应用程序中使用"Google输入工具"进行梵文输入.以下是我Devanagari ??????在一个textField中输入的情况,我想namaste在第二个textBox中显示它的英文等价物.怎么做?

private void jTextField1KeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
String input = jTextField1.getText();
jTextField2.setText(input); // I need code here to show input in English Encoding.
System.out.println("Input "+input);
}
Run Code Online (Sandbox Code Playgroud)
输出:
Input n
Input na
Input nam
Input nama
Input namas
Input namast
Input namaste
Input ??????
Run Code Online (Sandbox Code Playgroud)
感谢 Pawel的评论.我查看了那个图书馆,这是Helper课程,解决了我的问题!
import com.ibm.icu.text.Transliterator;
/**
* @author Tejas
*/
public class MarathiHelper {
public String devanagariToLatin(String marathiString) {
final String MAR_TO_ENG = "Devanagari-Latin";
//final String DEV_TO_LATIN_NO_ACCENTS = "Devanagari-Latin; nfd; [:nonspacing mark:] remove; nfc";
Transliterator toEnglish = Transliterator.getInstance(MAR_TO_ENG);
String english = toEnglish.transliterate(marathiString);
return english;
}
public String latinToDevanagari(String latinString) {
final String ENG_TO_DEV = "Latin-Devanagari";
Transliterator toMarathi = Transliterator.getInstance(ENG_TO_DEV);
String marathi = toMarathi.transliterate(latinString);
return marathi;
}
public String latinToAscii(String latinString){
final String ENG_TO_DEV = "Latin-ASCII";
Transliterator toMarathi = Transliterator.getInstance(ENG_TO_DEV);
String ascii = toMarathi.transliterate(latinString);
return ascii;
}
public String asciiToLatin(String asciiString){
final String ENG_TO_DEV = "ASCII-Latin";
Transliterator toMarathi = Transliterator.getInstance(ENG_TO_DEV);
String latin = toMarathi.transliterate(asciiString);
return latin;
}
}
Run Code Online (Sandbox Code Playgroud)