首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我试图用utf-8编码的中文字符在.properties文件中读取。

问我试图用utf-8编码的中文字符在.properties文件中读取。
EN

Stack Overflow用户
提问于 2016-02-08 15:52:11
回答 2查看 1.2K关注 0票数 1

我试着用中文读取.properties文件。当我用他们打印的钥匙看他们时,他们就像?我正在编写JSF应用程序。我需要为这份申请做中文翻译。在JSF中的UI中,它正确地显示了所有字符。但在我的java代码中,它显示的是?我不知道为什么。我还试过"手提電話“和”u88dc\u7fd2\u500b\u6848“,并尝试在控制台上打印它们,主要功能是在中文lang字符中正确打印。我的属性文件有编码utf-8。

为了澄清您对此的困惑,我可以用中文显示它们的控制台。

代码语言:javascript
复制
 String str="Алексей";
    String str="\u88dc\u7fd2\u500b\u6848";
    System.out.println("direct output: "+str);

在psvm中工作很好。但是在阅读了使用属性文件是显示?E希望现在是清楚的。我的数据库也收到了??用于实际汉字的位置。

请帮帮忙。任何其他的澄清,然后请确认,以便我可以更新我的台词在这里。

下面是读取属性文件的代码,该文件返回相关区域设置的包。

代码语言:javascript
复制
 FacesContext context = FacesContext.getCurrentInstance();
                    bundle = context.getApplication().getResourceBundle(context, "hardvalue");

在此之后,我将调用它来访问值:

代码语言:javascript
复制
bundle.getString("tutorsearch.header"); // results in ?????

您需要的其他代码请确认。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-08 20:17:58

多个问号通常来自

  • 你有utf8 8编码的数据(很好)
  • SET NAMES latin1生效(默认,但错误)
  • 该列被声明为CHARACTER SET latin1 (默认值,但错误)

对于中文(或Emoji),您需要使用MySQL的utf8mb4。

解决方法(用于未来的INSERTs):

  • utf8 8-编码数据(很好)
  • mysqli_set_charset('utf8mb4') (或您的客户建立CHARACTER SET所需的一切)
  • 检查列和/或表默认值是否为CHARACTER SET utf8mb4
  • 如果您在网页上显示,<meta...charset=utf-8>应该接近顶部。(注意不同的拼写。)
票数 0
EN

Stack Overflow用户

发布于 2016-03-06 05:00:10

添加下面的标签已经解决了我的问题。

代码语言:javascript
复制
<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

感谢所有

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35273712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档