使用 string.Format 和 unicode 信息
Using string.Format with unicode information
我正在尝试使用 string.Format 来包含货币符号,但看到了意外结果。
查看以下内容:
var textToReplace = "Final price is {0} {1}";
var output = string.Format(textToReplace, "Include MAD currency symbol here", "123.90");
output.Dump();
//货币符号是د.م.
Final price is د.م. 123.90
奇怪的是,当我输入这个问题时,SO问题区域会自动切换货币符号位置和金额。解释起来有点难,你自己试试吧。
我想看到货币符号后跟金额。但是我看到金额后跟货币符号。
我该如何解释这种行为?
您遇到的问题是该符号是 RTL。位置是正确的,但它以另一种方式呈现。您可以尝试添加 Unicode \u200E
。
这将标记字符应该是从左到右
例如:
var textToReplace = "Final price is {0} {1}";
var output = string.Format(textToReplace, "Include MAD currency symbol here\u200E", "123.90");
output.Dump();
我正在尝试使用 string.Format 来包含货币符号,但看到了意外结果。
查看以下内容:
var textToReplace = "Final price is {0} {1}";
var output = string.Format(textToReplace, "Include MAD currency symbol here", "123.90");
output.Dump();
//货币符号是د.م.
Final price is د.م. 123.90
奇怪的是,当我输入这个问题时,SO问题区域会自动切换货币符号位置和金额。解释起来有点难,你自己试试吧。
我想看到货币符号后跟金额。但是我看到金额后跟货币符号。
我该如何解释这种行为?
您遇到的问题是该符号是 RTL。位置是正确的,但它以另一种方式呈现。您可以尝试添加 Unicode \u200E
。
这将标记字符应该是从左到右
例如:
var textToReplace = "Final price is {0} {1}";
var output = string.Format(textToReplace, "Include MAD currency symbol here\u200E", "123.90");
output.Dump();