0

我正在帮助开发一个适用于 Android 的应用程序,该应用程序有时会使用来自世界不同地区的特殊字符,特别是在列出人名时。因此,一个很好的例子是名称上的西班牙或瑞典口音。该应用程序未正确呈现这些。我需要向 Web 服务添加什么才能正确显示这些重音符号?它们在我的数据库中正确显示,但在应用程序中却没有。

4

1 回答 1

0

这是一个示例: http ://docs.oracle.com/javase/tutorial/i18n/text/string.html

String original;
original = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C");

打印时,命名的字符串original显示为:

AêñüC

要将 String 对象转换为 UTF-8,请调用getBytes 方法并指定适当的编码作为参数。getBytes 方法返回 UTF-8 格式的字节数组。要从非 Unicode 字节数组创建 String 对象,请使用 encoding 参数调用 String 构造函数。进行这些调用的代码包含在 try 块中,以防指定的编码不受支持:

try {
     byte[] utf8Bytes = original.getBytes("UTF8");
     byte[] defaultBytes = original.getBytes(); 
     String roundTrip = new String(utf8Bytes, "UTF8");
     System.out.println("roundTrip = " + roundTrip);
     System.out.println();
     printBytes(utf8Bytes, "utf8Bytes");
     System.out.println();
     printBytes(defaultBytes, "defaultBytes"); 
     } catch (UnsupportedEncodingException e) {
     e.printStackTrace(); 
     }

StringConverter 程序打印出 utf8Bytes 和 defaultBytes 数组中的值来演示一个重点:转换后的文本的长度可能与源文本的长度不同。一些 Unicode 字符转换为单个字节,其他字符转换为字节对或三个字节。

于 2013-04-19T00:32:31.803 回答