【发布时间】:2019-11-30 05:41:24
【问题描述】:
C# application on Japanese Windows OS - Present Latin as Full-Width characters
我在上面的链接中引用了接受的答案,并使用下面的代码将日语字符串从全角转换为半角,但它返回相同的全角字符串而不进行转换。
string userInput = "チヨチヨチチヨチヨチ";
string result = userInput.Normalize(NormalizationForm.FormKC);
半宽度的预期输出:チヨチヨチチヨチヨチ 实际输出:チヨチヨチチヨチヨチ(全幅)
但是,即使上面的代码应该将全角字符串转换为半角,当我将半角字符串 (チヨチヨチチヨチヨチ) 传递给上述代码时,它会将其转换为全角形式 (チヨチヨチチヨチヨチ)。
我在这里做错了什么?
无论如何,如果我的字符串已经是半角,我不希望执行上面的代码。
如何检查字符串是半角还是全角?
【问题讨论】:
-
你能解释一下“全宽和半宽”是什么意思吗?
-
@MostafaTHIS
-
半角是这样的 1 、2、3、4、5 ...a、b、c (半角需要1个字节)。如果我们将半角改为全角 1 、2、3、4、5 ...a、b、c → 1、2、3、4、5...a、b、c (全角成本2 个字节)
-
感谢@John 和增值税。我在以下位置找到了更多信息:en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms
-
我测试了你的代码,它没有将半角转换为全角。我使用 .net framework 4.0 和 .net core 进行了测试。你能分享一个显示问题的代码吗?
标签: c# asp.net asp.net-core string-conversion string-operations