当前位置: 首页 > 知识库问答 >
问题:

i18n JAVA字符编码

章景同
2023-03-14

我有一个Java(Java 7)程序,使用带有属性文件的i18n,但我不能插入表情符号或其他“非普通”字母,因为Java打印 。但当我使用,例如:

package res;

import java.util.ListResourceBundle;

public class Bundle_it_IT extends ListResourceBundle {

    @Override
    protected Object[][] getContents() {
        return new Object[][] {
                {"hello", "Hello, “ \ uD83D\ uDE42 \ uD83D\ uDE0A\ uD83D\ uDE00\ uD83D\ uDE01"},
                {"ourfeatures", new String[] {"Test 1", "Test2", "test 3"
        };
    }
}

Java能够打印所有内容而不带问号。

有没有一种方法可以使用礼仪文件,即使是“奇怪的符号”?属性文件的编码是ASCHI?

主要课程是:

package testi18nv1;

import res.Bundle_it_IT;

import java.util.Locale;
import java.util.ResourceBundle;

public class Main {
    public static void main(String[] args) {
        Locale locale_it_IT = new Locale("it", "IT");
        Locale locale_ru_RU = new Locale("ru", "RU");

        Bundle_it_IT bundle_it_IT =  new Bundle_it_IT();

        ResourceBundle resourceBundle = ResourceBundle.getBundle("res.bundle", locale_it_IT);

        System.out.println(resourceBundle.getString("hello"));
        System.out.println(bundle_it_IT.getString("hello"));
    }
}

我曾尝试在属性文件中使用俄语字母,但java打印问号。


共有1个答案

何晗昱
2023-03-14

属性最初是拉丁-1,ISO-8859-1。

较新的java版本首先尝试UTF-8。因此,您需要从Java7更新到新版本。这不是问题。

你也可以用UTF-8保存一个属性文件,比如xxx。utf8props并将其转换并复制到xxx。从src到build目录的属性。这可以通过java SE工具native2ascii实现。

更麻烦的是更改代码并使用自己加载的类属性。

但实际上,Java7不再是生产质量。

 类似资料:
  • So do not worry about tomorrow, for tomorrow will bring worries of its own. Today's trouble is enough for today. (MATTHEW 6:34) 字符编码 其实,标题前面应该加两个字——“坑爹”。 在实践中,字符编码的确是一个“坑”。因为这个世界上,不都是英文。如果都是英文,就没有这个问题

  • 问题内容: Linux / x86_64上的GCC 4.7是否具有默认字符编码,通过它可以验证和解码C源文件中字符串文字的内容?这是可配置的吗? 此外,将字符串文字从字符串文字链接到输出的数据部分时,它是否具有默认的执行字符编码?这是可配置的吗? 在任何配置中,源字符编码都可能与执行字符编码不同吗?(那gcc会在字符编码之间进行代码转换吗?) 问题答案: 我不知道这些选项的实际效果如何(不使用at

  • 问题内容: 我有一个在GlassFish 3上运行的Java Web应用程序和在MySQL上的JPA(EclipseLink)上运行。我面临的问题是,如果使用该方法将实体保存到数据库中,则字段将丢失完整性;显示而不是某些字符。 服务器,页面和数据库配置为使用。 发布表单数据后,下一页将正确显示数据。此外,它在NetBeans中似乎“调试”当前实体的属性也存储了正确的值。如果可以信任NetBeans

  • 问题内容: 我正在从命令行(Windows 7)运行Java程序。为了简化问题,我仅描述相关部分。 我的输出是垃圾。显然这是一个字符编码问题,Á和á的匈牙利字符未正确显示。我尝试了以下方法: 但是我的输出仍然是垃圾。如何使用Windows 7命令行解决此字符编码问题?谢谢 问题答案: 我通过在命令行中找到正确的编码,然后有你的代码的工作 要么 使用,与编码版本 或 通过指定它的命令行上,只是利用。

  • 我有一个带有一些特殊字符的mysql数据库,一个输入表单,一些PHP页面。 > 这个页面发送(通过GET)一个参数到另一个php页面(ResultsPage)。 最后这个php页面(ResultsPage)向dbms发送一个带有参数的查询并显示结果。 RequestPage编码为utf-8至 meta http equiv=“Content Type”Content=“text/html;char

  • 6. 字符类型与字符编码 字符常量或字符型变量也可以当作整数参与运算,例如: printf("%c\n", 'a'+1); 执行结果是b。 我们知道,符号在计算机内部也用数字表示,每个字符在计算机内部用一个整数表示,称为字符编码(Character Encoding),目前最常用的是ASCII码(American Standard Code for Information Interchange,

  • 对于Java/general中有关此概念的任何好的参考资料,我们将不胜感激。

  • 问题内容: 我收到一个json数据对象,然后从中提取一个字符串 然后我尝试使该字符串适合在URL中使用 但它不起作用 如果我对newCountryString进行了硬编码,它将起作用,为什么呢? 问题答案: 用这个 - 此代码将使用给定的编码返回接收方的表示形式,以确定将接收方转换为合法URL字符串所需的转义百分比。 有关更多详细信息:https : //developer.apple.com/d