android 双向文字问题

  双向文字就是一个字符串中包含了两种文字,既包含从左到右的文字又包含从右到左的文字。

  大多数文字都是从左到右的书写习惯,比如拉丁文字(英文字母)和汉字,少数文字是从右到左的书写方式比如阿拉伯文(ar)跟希伯来文(he)。对于需要国际化支持的应用来说,由于阅读习惯的不同在页面排版和布局中会给开发人员带来麻烦。这种情况多数出现在从右到左的文字中,比如字符串中出现阿拉伯文、英文字母、数字以及标点符号。

  遇到的问题:android 某个页面显示title为: username + "唱的歌" ,当用户名为阿拉伯文时,textview显示的字符串就会变成“唱的歌username”。很神奇,是因为阿拉伯文是从右往左的,所以才会有显示的问题。

  解决方法:http://developer.android.com/reference/android/support/v4/text/BidiFormatter.html

StringBuilder builder = new StringBuilder();
        return builder
                .append(BidiFormatter.getInstance().unicodeWrap(mTitleName))
                .append("唱的歌").toString();

  这样就OK了。

原文地址:https://www.cnblogs.com/aprz512/p/4988809.html