gpt4 book ai didi

c# - Unicode 到 ASCII 的转换/映射

转载 作者:行者123 更新时间:2023-11-30 17:54:47 27 4
gpt4 key购买 nike

我需要某种转换/映射,例如,由 CLCL 剪贴板管理器完成。

它的作用是这样的:

我复制以下 Unicode 文本:ūī
而 CLCL 将其转换为:ui

有什么技术可以做这样的转换吗?或者也许有映射表可以用来转换,比方说,符号 ū 映射到 u。

更新

感谢大家的帮助。这是我带来的(两种解决方案的混合体),一个由 Erik Schierboom 发布,另一个来自 http://blogs.infosupport.com/normalizing-unicode-strings-in-c/#comment-8984

public static string ConvertUnicodeToAscii(string unicodeStr, bool skipNonConvertibleChars = false)
{
if (string.IsNullOrWhiteSpace(unicodeStr))
{
return unicodeStr;
}

var normalizedStr = unicodeStr.Normalize(NormalizationForm.FormD);

if (skipNonConvertibleChars)
{
return new string(normalizedStr.ToCharArray().Where(c => (int) c <= 127).ToArray());
}

return new string(
normalizedStr.Where(
c =>
{
UnicodeCategory category = CharUnicodeInfo.GetUnicodeCategory(c);
return category != UnicodeCategory.NonSpacingMark;
}).ToArray());
}

最佳答案

我已经使用下面的代码一段时间了:

private static string NormalizeDiacriticalCharacters(string value)
{
if (value == null)
{
throw new ArgumentNullException("value");
}

var normalised = value.Normalize(NormalizationForm.FormD).ToCharArray();

return new string(normalised.Where(c => (int)c <= 127).ToArray());
}

关于c# - Unicode 到 ASCII 的转换/映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15683717/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com