本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Android显示外语字符串

发布于2024-12-03 09:16     阅读(1076)     评论(0)     点赞(0)     收藏(4)


我有一个应用程序,用于检索 JSON 格式的数据。JSON 文件中的某些字符串是外语,例如阿拉伯语、印地语等。我尝试使用 解码字符串,UTF-8但它仍然显示乱码,而不是原始脚本。有什么想法可以实现吗?

编辑:我从 JSON 解码字符串的方法

String result; // result in string format obtained from server

JSONTokener tokener = new JSONTokener(result);

JSONObject obj = new JSONObject(tokener);

String msg = obj.getString("message");

TextView message = TextView) findViewById(R.id.inbox_msg);

try {

message.setText(new String(msg.getBytes(), "UTF-8"));

} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

我做错什么了吗?

附言:我尝试使用 DroidHindi.ttf 文件显示文本,但没有成功。我在三星 Galaxy Tab 2 7.0 上运行该应用程序


解决方案


Android 默认支持阿拉伯语。对于服务器端的印地语,您应该对印地语文本进行 unicode 编码,然后在客户端(android)解码文本并打印值。请记住,在客户端和服务器端都应该使用相同的字体对文本进行 unicode 编码和解码。(例如,我使用了 Kruti DEv 10.TTF)。http: //www.infowebservices.in/hindi/请参阅此站点将印地语文本转换为 unicode,否则请使用一些库。

LinearLayout mainLayout=new LinearLayout(this);
        mainLayout.setOrientation(LinearLayout.VERTICAL);
        setContentView(mainLayout);

        TextView arbicView=new TextView(this);
        arbicView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
        arbicView.setText("الغارديان: انقسام بين سكان الجولان حول نظام الاسد");
        mainLayout.addView(arbicView);


        TextView hindiView=new TextView(this);
        hindiView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); 
        hindiView.setText("Hghgfdhgfhsdgfh h hhfh hkshfkuifyeryeuiryhdfjkhdfuiyerihjkfhsdjkyruiweyk");
        hindiView.setTypeface(Typeface.createFromAsset(getAssets(), "Kruti Dev 10.TTF"));
        mainLayout.addView(hindiView);


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/694090/98e14625f915804c1fb4/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)