How do I encode Devanagari Back to English Encoding

一个人想着一个人 提交于 2020-01-17 02:51:16

问题


I am using 'Google Input Tools' for Devanagari Input in a Java application. Following is the scenario where I am typing Devanagari नमस्ते in one textField, I want to show it's English equivalent namaste in second textBox. How to do that?

  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);
}  

Output:

  Input n
  Input na
  Input nam
  Input nama
  Input namas
  Input namast
  Input namaste
  Input नमस्ते

回答1:


Thanks Pawel for that comment . I looked into that library and here's the Helper class which solved my problem!

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;
    }
}


来源:https://stackoverflow.com/questions/24751432/how-do-i-encode-devanagari-back-to-english-encoding

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!