2

输出_屏幕

public class demo {

    public static void main(String[] args) {
        for(int k = 2029; k<=2360 ; k++)
        {
            System.out.print(k+  " "+(char)k+" ");
        }
    }
}

输出:

2029 ? 2030 ? 2031 ? 2032 ? 2033 ? 2034 ? 2035 ? 2036 ? 2037 ? 2038 ? 2039 ? 2040 ? 2041 ? 2042 ? 2043 ? 2044 ? 2045 ? 2046 ? 2047 ? 2048 ? 2049 ? 2050 ? 2051 ? 2052 ? 2053 ? 2054 ? 2055 ? 2056 ? 2057 ? 2058 ? 2059 ? 2060 ? 2061 ? 2062 ? 2063 ? 2064 ? 2065 ? 2066 ? 2067 ? 2068 ? 2069 ? 2070 ? and so on...

此输出显示在 cmd ... 为什么它不显示印地语字符 ....

4

3 回答 3

5

在 Eclipse 中:

您需要将 Eclipse 控制台编码更改为 UTF-8。为此,请进入“运行配置”对话框并选择“常用”选项卡。在编码下,选择UTF-8。现在运行你的程序。您应该会在 Eclipse 控制台中看到印地语字符。

于 2012-09-24T16:07:16.617 回答
2

在 Intellij 下运行您的程序时,我遇到了同样的问题。我通过更改调试命令行来修复

-Dfile.encoding=windows-1251 到 -Dfile.encoding=utf-8

Intellij 将默认文件编码设置为不适用于印地语的值。我的eclipse生锈了,但是看看你是否可以将调试器的vm选项更改为 -Dfile.encoding=utf-8

于 2012-09-24T15:41:13.410 回答
2

如果您创建一个文件说 .properties 文件以进行国际化,Eclipse 具有内置的 unicode 编辑器。如果在 RUN Configuration Common 选项卡下启用。在控制台编码=> 其他下选择 UTF-8。然后控制台将以您选择的语言读取它。您仍然需要为文件提供 unicode 字符,或者将字符转换为 UNICODE。

现在,如果你有你的语言字符在这里用印地语 विमल कृष्णा (某些编辑器需要这些字符)然后如果我只是粘贴到 eclipse .properties 文件中,它将自动转换为 \u0935\u093F\u092E\u0932 \u0915 \u0943\u0937\u094D\u0923\u093E。

上面的字符串现在将在控制台中被解释为 विमल कृष्णा。

示例:第 1 步在 Spring 中,您需要在名为“locale”的文件夹下的类路径中(比如在 src/main/resources 中)一个名为

带有内容的messages_hi_IN.properties(用于印地语)

user.name=\u0935\u093F\u092E\u0932 \u0915\u0943\u0937\u094D\u0923\u093E, age : {0}, URL : {1}

messages_en_US.properties(英语)与内容

user.name=vimal krishna, age : {0}, URL : {1}

第2步:

你的主要应用:

package com.vimal.common;

import java.text.SimpleDateFormat;
import java.util.Locale;

 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;

 public class App {
      public static void main(String[] args) {

       ApplicationContext context 
        = new ClassPathXmlApplicationContext("com/vimal/common/beans.xml");

       String name = context.getMessage("user.name", new Object[] { 45,"http://www.vkrishna.com" }, Locale.US);

    System.out.println("User name (English) : " + name);

    String nameHindi = context.getMessage("user.name", new Object[] {45, "http://www.vkrishna.com" }, new Locale("hi", "IN"));

    System.out.println("User name (Hindi) : " + nameHindi);

  }
}

第 3 步:配置文件

<?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans      
http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="messageSource"
    class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename">
        <value>locale\messages</value>
    </property>
</bean>

这里的locale是 src/main/resources 中的文件夹,它位于messages_hi_IN.properties 文件所在的类路径上(如果一个maven 项目是由eclipse 创建的)。locale\messages 引用此消息_hi_IN.properties 文件,添加 hi_IN 是印地语语言环境检测的关键。现在在主应用程序中,您可以看到创建了一个新的 Locale("hi", "IN"),因为它没有像 locale.US 等在 eclipse 中定义。

结果将是:

Dez 31, 2014 12:19:12 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFORMATION: Pre-instantiating singletons in   org.springframework.beans.factory.support.DefaultListableBeanFactory@5594a1b5: defining beans [messageSource]; root of factory hierarchy
Customer name (English) : vimal krishna, age : 45, URL : http://www.vkrishna.com
Customer name (Hindi) : विमल कृष्णा, age : ४५, URL : http://www.vkrishna.com

我已经修改了链接...

于 2014-12-31T11:33:57.173 回答