【问题标题】:Can't print hindi characters无法打印印地语字符
【发布时间】:2012-09-24 15:24:29
【问题描述】:

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 ... 为什么它不显示印地语字符....

【问题讨论】:

  • 或者我如何打印印地语字符???
  • 确保您的控制台可以解释输出
  • 您看到的? 是因为您的控制台不支持这些字符。尝试在 JLabelJOptionPane 中显示它们。
  • 我安装了印地语字体,但它再次显示相同的东西....
  • 请准确说明您查看输出的位置(例如,Windows 上的 cmd.exe,Linux 上的 bash 等)

标签: java


【解决方案1】:

在 Eclipse 中:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

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

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

      的文件

      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 指的是这个 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
      

      我已经修改了link...

      【讨论】:

      • 当我在记录器中打印它显示为 ???? ???对于प्रियमेंबर,मुबारकहो!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      相关资源
      最近更新 更多