我需要获取Android应用中EditText
上输入的表情符号代码。
我已经尝试了这个,但是总是为我所有的emojis返回ASCII值55356和55357 。
end = (TextView) findViewById(R.id.txtFinal);
botom = (Button) findViewById(R.id.btn);
intro = (EditText)findViewById(R.id.txtIntro);
botom.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String t = intro.getText().toString();
if (t != null && t != ""){
char c = t.charAt(0);
end.setText((int)c+"");
}
}
});
我可以将它们转换为UTF吗?如果是这样,怎么样? 或者还有另一个针对表情符号的具体内容?
答案 0 :(得分:0)
您可以使用t.getBytes("UTF8")
更改编码。 Here是关于getBytes
方法的更多信息。
答案 1 :(得分:0)
忘记ASCII。如果你只认为你使用的是ASCII,那么你几乎肯定不会。
charAt
不返回ASCII值。它返回一个UTF-16代码单元,其中一个或两个编码Unicode代码点。
目前还不清楚你想用表情符号做什么。您似乎将它从整个字符串中分离出来并假设它是字符串中的第一个文本元素。也许这只是测试代码。
您可以使用UTF-16代码单元,直到您拥有整个字符。这是一个或两个代码单元。 Character
类有一个方法:codePointAt(CharSequence seq, int index)。根据您要完成的任务,您可以使用其他方法。课堂描述很好读。