2013-04-19 38 views
0

我正在帮助开发Android应用程序,该应用程序有时会使用来自世界各地的特殊字符,特别是在列出人物名称时。所以,一个很好的例子就是西班牙或瑞典的口音。该应用程序没有正确渲染这些。我需要添加到Web服务以便这些重音标记正确显示?它们在我的数据库中正确显示,但不在应用程序中。允许Android应用程序中的所有字符

+0

需要更多信息。你有什么尝试,出了什么问题?如果我不得不在黑暗中拍摄一张照片,我会说这些文字是使用错误的编码输入或显示的。您应该只使用Unicode(UTF-8),因为该编码涵盖了您可能想要显示的所有字符。 –

回答

0

下面是一个例子: http://docs.oracle.com/javase/tutorial/i18n/text/string.html

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

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

AêñüC

到字符串对象转换为UTF-8 ,调用getBytes 方法并指定适当的编码作为参数。 getBytes方法返回UTF-8格式的字节数组。至 从非Unicode字节的数组中创建一个String对象,用编码参数调用 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(); 
    } 

的字符串转换程序打印出的值在utf8Bytes和defaultBytes阵列来演示的 重点:转换文本的长度可能不是 ,与源文本的长度相同。某些Unicode字符将转换为单个字节,其他字符则转换为字符对或三元组。

相关问题