c# - 如何在字符串中包含数字以不转换为另一种语言(例如阿拉伯语)

标签 c# string.format

我有这样的代码..

string text1 = "more text";
string text2 = string.Format("some text plus {0}", text1);
我将其转换为阿拉伯语:
string text1 = "المزيد من النص";
string text2 = string.Format("بعض النص بالإضافة إلى {0}", text1);
到目前为止没有问题!
然后我将计算机的语言从英语切换到阿拉伯语并查看代码,数字已自动更新为阿拉伯数字......
string text1 = "المزيد من النص";
string text2 = string.Format("{.} بعض النصوص بالإضافة إلى", text1);
(我不得不使用句点来捏造这一点,但是对于这个例子来说,0 的阿拉伯符号看起来足够相似)。
问题是,当 Windows 选择的语言是阿拉伯语时,我收到字符串格式异常错误,因为 Format 命令无法识别阿拉伯语符号为零。
具体来说,我的问题是:即使在非拉丁语言中,您如何确保输入的零仍然是拉丁数字?或者我怎样才能让它正常工作而不会出错?
编辑:
直接从 IDE 剪切和粘贴:第一个 Windows 设置为英语,第二个图片,相同的代码,阿拉伯语...
English
Arabic

最佳答案

String.Format(CultureInfo.InvariantCulture,"",)应该是要走的路,但您需要将字符串分成两部分:
第一部分包含阿拉伯文本或英文文本。
第二部分应包含数字部分,这就是您应该格式化的部分。
这是 Microsoft 提供的文档,供您查看和确定要使用的特定区域性。
https://docs.microsoft.com/en-us/dotnet/api/system.string.format?view=net-5.0#System_String_Format_System_IFormatProvider_System_String_System_Object _

关于c# - 如何在字符串中包含数字以不转换为另一种语言(例如阿拉伯语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68190166/

相关文章:

.net - 使用 String.Format 在运行时指定小数位

c# - 哪个版本的 C# 使用 $ 而不是 string.format

c# - TFS Fakes 构建单元测试失败

c# - 在 Web API 中返回 JSON

c# - 用破折号格式化字符串

java - string.format() 中是否有 "%"空格符号?

c# - 解释令人困惑的条件字符串格式

c# - 用 Observable 替换 TaskCompletionSource

c# - SQLException : Cannot insert duplicate key row in object 'dbo.Users' with unique index

c# - 使用代码将 Textblock 添加到 PivotItem,如何?