Java中的中文字符串处理?

凯文

在我分配的项目中,原始作者编写了一个函数:

  public String asString() throws DataException
  {
    if (getData() == null) return null;

    CharBuffer charBuf = null;

    try
    {
        charBuf = s_charset.newDecoder().decode(ByteBuffer.wrap(f_data));
    }
    catch (CharacterCodingException e)
    {
        throw new DataException("You can't have a string from this ParasolBlob: " + this, e);
    }

    return charBuf.toString()+"你好";
 }   

请注意,常量s_charset定义为:

private static final Charset s_charset = Charset.forName("UTF-8");

另请注意,我已经在返回字符串中对中文字符串进行了硬编码。

现在,当程序流到达此方法时,它将引发以下异常:

 java.nio.charset.UnmappableCharacterException: Input length = 2

更有趣的是,硬编码的中文字符串将显示为“ ??”。在控制台上,如果我执行System.out.println()。

我认为就本地化而言,这个问题非常有趣。而且我尝试将其更改为Charset.forName(“ GBK”);

但似乎不是解决方案。另外,我将Java类的编码设置为“ UTF-8”。

有专家在这方面有经验吗?你能分享一点吗?提前致谢!

朱尼德·阿桑

更有趣的是,硬编码的中文字符串将显示为“ ??”。在控制台上,如果我执行System.out.println()。

System.out执行从UTF-16字符串到默认JRE字符编码的转码操作。如果这不匹配,则接收字符数据的设备使用的编码将被破坏。因此,应将控制台设置为使用正确的字符编码(UTF-8)来正确呈现中文字符。

如果您使用的是eclipse,则可以通过以下方式更改控制台编码:

运行配置->通用->编码(从下拉列表中选择UTF-8)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

包含中文字符到ASCII的字符串

来自分类Dev

无法在Python中的中文字符串中逐字符打印

来自分类Dev

str_replace()不会替换中文字符串中的needle

来自分类Dev

在Python中从中文字符串日期中提取日期

来自分类Dev

如果中文字符串显示在Python的pandas DataFrame中怎么办

来自分类Dev

Javascript unicode字符串,中文字符,但无标点符号

来自分类Dev

Javascript unicode字符串,中文字符,但不带标点符号

来自分类Dev

C中文字字符串的内存使用情况

来自分类Dev

通过servlet导出为CSV文件时,中文字符串显示为问号

来自分类Dev

如何将中文十六进制字符串解码为中文字符或JavaScript?

来自分类Dev

Java + Spring + Vault:密码中的中文字符,变为“ ???” 在应用程序中

来自分类Dev

为什么在Python 3.6 alpha中文字格式的字符串(f-strings)这么慢?(现在已在3.6稳定版中修复)

来自分类Dev

CreateWindowExA将常规字符串解释为Unicode,并在标题中显示中文字符

来自分类Dev

第一个中文字符在双倍空格后自动移至字符串末尾

来自分类Dev

Java无法以正确的编码读取中文字符

来自分类Dev

如何在ZipEntry中写中文字符?

来自分类Dev

模仿Web URL在python中编码中文字符

来自分类Dev

Firefox 57.0中不显示中文字符

来自分类Dev

iText - 不显示中文字符

来自分类Dev

如何在sql server中使用正则表达式将字符串与中文字符进行比较

来自分类Dev

在页脚中以图像居中文字

来自分类Dev

在php图像中居中文字

来自分类Dev

Java中的字符串处理数组

来自分类Dev

Java中的字符串处理

来自分类Dev

Python CSV写入到Excel中不可读的文件(中文字符)

来自分类Dev

Windows中带有中文字符的python调用命令行失败

来自分类Dev

Perl-带中文字符的quotemeta

来自分类Dev

Strings.xml无法识别中文字符

来自分类Dev

在VIM中看不到中文字符

Related 相关文章

  1. 1

    包含中文字符到ASCII的字符串

  2. 2

    无法在Python中的中文字符串中逐字符打印

  3. 3

    str_replace()不会替换中文字符串中的needle

  4. 4

    在Python中从中文字符串日期中提取日期

  5. 5

    如果中文字符串显示在Python的pandas DataFrame中怎么办

  6. 6

    Javascript unicode字符串,中文字符,但无标点符号

  7. 7

    Javascript unicode字符串,中文字符,但不带标点符号

  8. 8

    C中文字字符串的内存使用情况

  9. 9

    通过servlet导出为CSV文件时,中文字符串显示为问号

  10. 10

    如何将中文十六进制字符串解码为中文字符或JavaScript?

  11. 11

    Java + Spring + Vault:密码中的中文字符,变为“ ???” 在应用程序中

  12. 12

    为什么在Python 3.6 alpha中文字格式的字符串(f-strings)这么慢?(现在已在3.6稳定版中修复)

  13. 13

    CreateWindowExA将常规字符串解释为Unicode,并在标题中显示中文字符

  14. 14

    第一个中文字符在双倍空格后自动移至字符串末尾

  15. 15

    Java无法以正确的编码读取中文字符

  16. 16

    如何在ZipEntry中写中文字符?

  17. 17

    模仿Web URL在python中编码中文字符

  18. 18

    Firefox 57.0中不显示中文字符

  19. 19

    iText - 不显示中文字符

  20. 20

    如何在sql server中使用正则表达式将字符串与中文字符进行比较

  21. 21

    在页脚中以图像居中文字

  22. 22

    在php图像中居中文字

  23. 23

    Java中的字符串处理数组

  24. 24

    Java中的字符串处理

  25. 25

    Python CSV写入到Excel中不可读的文件(中文字符)

  26. 26

    Windows中带有中文字符的python调用命令行失败

  27. 27

    Perl-带中文字符的quotemeta

  28. 28

    Strings.xml无法识别中文字符

  29. 29

    在VIM中看不到中文字符

热门标签

归档