【问题标题】:Allow all characters in Android app允许 Android 应用中的所有字符
【发布时间】:2013-04-19 00:21:46
【问题描述】:

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

【问题讨论】:

  • 需要更多信息。您尝试过什么,出了什么问题?如果我不得不在黑暗中拍摄,我会说正在使用错误的编码输入或显示文本。您应该对所有内容都使用 Unicode (UTF-8),因为该编码涵盖了您可能想要显示的所有字符。

标签: android character special-characters


【解决方案1】:

这是一个例子: 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 对象,调用 带有编码参数的字符串构造函数。使代码 这些调用包含在 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 字符 转换成单个字节,其他转换成字节对或三元组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 2019-03-22
    • 1970-01-01
    • 2016-02-29
    • 2016-04-18
    • 2021-02-22
    • 2012-11-07
    相关资源
    最近更新 更多