String.Format throws'输入字符串的格式不正确'阿拉伯语文本

时间:2014-08-13 09:23:59

标签: c# asp.net string localization arabic

我在尝试从包含阿拉伯文字符的字符串替换参数时,一直遇到常见错误'输入字符串格式不正确 。虽然每个阿拉伯语文本都没有发生。

示例:

‪{تم ايداع الالية لرقم السجل {0

以下代码对上述文字失败。

string str= "{تم ايداع الالية لرقم السجل {0";
object[] subjectText = new object[] { "10112" };
str = string.Format(str, subjectText);

我知道必须有一种方法可以清理或格式化字符串,使字符串格式不会抛出异常。

1 个答案:

答案 0 :(得分:4)

看看char[];该字符串实际上是:

{

然后是一大堆阿拉伯语,包括ltr / rtl,然后

} 0

要使其作为替代品,字符{0}必须相邻并且顺序正确。

这很好用:

string str = "{0} تم ايداع الالية لرقم السجل";

(它看起来一样,但是结构非常不同;另外,你必须决定{0}是否应该在起始ltr和末尾rtl之间。