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

ibm icu图书馆中孟加拉语和马拉地语的数字整形

谭繁
2023-03-14

我想知道为什么只有孟加拉语和马拉地语的数字是整形的(不是以拉丁文格式显示的),而我使用ibm.icu库尝试了各种其他语言,请参考下面的代码和它的结果-

代码-

import com.ibm.icu.text.DateFormat;

import java.util.Date;
import java.util.Locale;

public static void main() {

        final Locale english = new Locale("en", "IN");
        final Locale hindi = new Locale("hi", "IN");
        final Locale tamil = new Locale("ta", "IN");
        final Locale telugu = new Locale("te", "IN");
        final Locale kannada = new Locale("kn", "IN");
        final Locale malayalam = new Locale("ml", "IN");
        final Locale marathi = new Locale("mr", "IN");
        final Locale bengali = new Locale("bn", "IN");
        final Locale gujrati = new Locale("gu", "IN");

        Locale[] availableLocales = new Locale[]{english, hindi, tamil, telugu, kannada, malayalam, marathi, bengali, gujrati};

        for (Locale availableLocale : availableLocales) {
            System.out.println(availableLocale.getDisplayLanguage());
            printer(availableLocale);
            System.out.println("--------");
        }
    }


    private static void printer(final Locale locale) {
        DateFormat df = DateFormat.getInstanceForSkeleton("EEEE, MMMM d, YYYY", locale);
        System.out.println(df.format(new Date()));
    }

结果-

English
Friday 19 March 2021
--------
Hindi
शुक्रवार, 19 मार्च 2021
--------
Tamil
வெள்ளி, 19 மார்ச், 2021
--------
Telugu
19, మార్చి 2021, శుక్రవారం
--------
Kannada
ಶುಕ್ರವಾರ, ಮಾರ್ಚ್ 19, 2021
--------
Malayalam
2021, മാർച്ച് 19, വെള്ളിയാഴ്‌ച
--------
Marathi
शुक्रवार, १९ मार्च, २०२१
--------
Bengali
শুক্রবার, ১৯ মার্চ, ২০২১
--------
Gujarati
શુક્રવાર, 19 માર્ચ, 2021

用例-

  • 我希望所有语言的数字仅以拉丁文格式显示。

查询-

  • 如何解决此问题?

共有1个答案

王磊
2023-03-14

您可以通过使用标准Unicode扩展名nu创建区域设置来强制使用拉丁数字,该扩展名的标准值包括latn。我不知道它在ibm.icu库中是否起作用,但我知道这与java.text.SimpleDateFormat一起起作用:

final Locale english = Locale.forLanguageTag("en-IN-u-nu-latn");
final Locale hindi = Locale.forLanguageTag("hi-IN-u-nu-latn");
final Locale tamil = Locale.forLanguageTag("ta-IN-u-nu-latn");
final Locale telugu = Locale.forLanguageTag("te-IN-u-nu-latn");
final Locale kannada = Locale.forLanguageTag("kn-IN-u-nu-latn");
final Locale malayalam = Locale.forLanguageTag("ml-IN-u-nu-latn");
final Locale marathi = Locale.forLanguageTag("mr-IN-u-nu-latn");
final Locale bengali = Locale.forLanguageTag("bn-IN-u-nu-latn");
final Locale gujrati = Locale.forLanguageTag("gu-IN-u-nu-latn");
 类似资料:
  • 问题内容: 我正在尝试在填写报告之前将英语数字转换为孟加拉语数字。我从MySQL获取的数据: 例如,如果model.model列返回数字322,则应首先将数字转换为孟加拉语版本(৩২২),然后它将填充报告。 一| 二| 三১ | ২| ৩ 这是孟加拉的0-9: ২৩ ৮ ৮ 我在考虑以下替换方法: 也许行不通! 我只是不确定从哪里开始!但是这是我当前的应用代码: Java代码: 报告的模板: 正确

  • 问题内容: 我在某个地方需要显示孟加拉文字,例如: বাংলাদেশ 但是我只能看到矩形盒子。如何正确显示孟加拉语字符? 问题答案: 首先采用孟加拉unicode支持的字体,例如: 然后使用setFont将其附加到您的JTextArea对象 现在您应该能够正确查看孟加拉语,请尝试一下。 注意: Java使用系统中的字体,因此,如果系统不包含特定字体,则可以使用Font.createFont()在应

  • 我在Swift中遇到了一个印地语数字集整数值的问题 这是关于我们如何将印地语转换成英语的任意数值。 想知道如何将一种语言的数字转换成另一种语言的数字吗 例如:试图将印地语数字转换为阿拉伯语 这是我在操场上试过的代码: 这是它仅以英文显示的输出 我已经搜索了这个问题,但没有找到这种具体的解决方案,所以发布了一个新的问题。 注意:不寻找任何静态转换扩展或此类函数。 编辑:我不想要这种解决方案 在Swi

  • Adobe 亚洲语言书写器 借助 Adobe 亚洲语言书写器,您可以使用中东和南亚语言创建内容。您可以键入或混合键入阿拉伯语、希伯来语、英语和其他语言。 您可以在“段落”面板菜单(窗口 > 段落 > 面板菜单)中的可用书写器之间进行选择。例如,您可以使用中东和南亚语言单行书写器或中东和南亚语言逐行书写器。 有关 Illustrator 中支持的其他亚洲语言的更多信息,请参阅适用于亚洲语言文字的书写

  • 启用中东语言功能 若要在 Photoshop 界面中显示中东文字选项,请执行以下操作: 选取“编辑”>“首选项”>“文字”(Windows) 或“Photoshop”>“首选项”>“文字”(Mac OS)。 在“选取文本引擎选项”部分中,选取“中东”。 单击“确定”,并重新启动 Photoshop。 选取“文字”>“语言选项”>“中东语言功能”。 文本方向 要创建阿拉伯语和希伯来语内容,您可以将默

  • 我有一个,我需要在其中显示孟加拉语文本,例如: বাংলাদেশ 但是我只能看到长方形的盒子。我怎么才能正确地展示孟加拉文字呢?