如何在C#中将超级或下标转换为普通文本
我正在写一个slug生成器来制作漂亮的url。 我想将m²转换为m2,但是以通用的方式将其转换为所有上标(或下标),而不仅仅是简单的替换语句。
有任何想法吗?
谢谢约翰内斯,你让我走上正轨。 我让它工作的代码如下:
public string ConvertSuperscript(string value) { string stringFormKd = value.Normalize(NormalizationForm.FormKD); StringBuilder stringBuilder = new StringBuilder(); foreach (char character in stringFormKd) { UnicodeCategory unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(character); if (unicodeCategory != UnicodeCategory.NonSpacingMark) { stringBuilder.Append(character); } } return stringBuilder.ToString().Normalize(NormalizationForm.FormKC); }
我之前尝试过规范分解,但它需要兼容性分解才能正常工作。
如果您的字符串在URL中,那么我认为它是某种常见的非格式化文本,其forms为unicode字符(例如,与MS Word文档相对)。 在unicode中, 您只能将某些字符作为上标或下标 。 它们并不是那么多,并且一个简单的switch语句可以完成这项工作。
如果您尝试将包含所有类型字符的格式化文本转换为上标或下标,则意味着它们不会直接表示为unicode,并且它将在很大程度上取决于文本的格式。 如果是,请在问题中提供更多信息。
上述就是C#学习教程:如何在C#中将超级或下标转换为普通文本分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/952929.html