gpt4 book ai didi

c# - String.Format 没有正确转换阿拉伯语的整数

转载 作者:bug小助手 更新时间:2023-10-28 10:49:53 24 4
gpt4 key购买 nike

我对 String.Format 有疑问。除了第一个整数之外,以下代码正确格式化字符串。当前文化设置为伊拉克阿拉伯语 (ar-IQ):

int currentItem= 1;
string of= "من";
int count = 2;
string formatted = string.Format(CultureInfo.CurrentCulture, "{0}{1}{2}", currentItem, of, count);

文本从右到左格式化,2 转换为阿拉伯数字,但 1 不是。

有什么想法吗?

最佳答案

转换数值的默认行为是“上下文”,这基本上意味着如果数字以阿拉伯语开头,则以阿拉伯语(或其他“非拉丁”字符)显示,如果不是,则以“标准”欧洲号码。

你可以很容易地改变这种行为:

var culture = CultureInfo.CurrentCulture;
culture.NumberFormat.DigitSubstitution = DigitShapes.NativeNational; // Always use native characters
string formatted = string.Format(culture, "{0:d}{1:d}{2:d}", currentItem, of, count);

这应该会如您所愿 - 更多详情请参阅 MSDN .

关于c# - String.Format 没有正确转换阿拉伯语的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com