七位数怎么用计算机换八位,如何将8位字符转换为7位字符?(即Ü到U)

本文介绍了一个简化版的.NET代码,用于移除拉丁字符中的重音符号,利用String.Normalize和NormalizationForm.FormKD实现。方法详细解释了规范化过程,有助于提高字符串处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sinelaw..

30

对于.NET用户来说,CodeProject中的文章(感谢GvS的提示)确实比我迄今为止看到的任何其他文章更准确地回答了这个问题.

但是,该文章中的代码(在解决方案#1中)很麻烦.这是一个紧凑的版本:

// Based on http://www.codeproject.com/Articles/13503/Stripping-Accents-from-Latin-Characters-A-Foray-in

private static string LatinToAscii(string inString)

{

var newStringBuilder = new StringBuilder();

newStringBuilder.Append(inString.Normalize(NormalizationForm.FormKD)

.Where(x => x < 128)

.ToArray());

return newStringBuilder.ToString();

}

为了扩展答案,此方法使用String.Normalize,其中:

返回一个新字符串,其文本值与此字符串相同,但其二进制表示形式为指定的Unicode规范化形式.

特别是在这种情况下,我们使用NormalizationForm FormKD,在那些相同的MSDN文档中描述如下:

FormKD - 表示使用完全兼容性分解对Unicode字符串进行规范化.

有关unicode规范化表单的更多信息,请参阅Unicode附录#15.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值