我正在尝试转换一些法语加拿大语的字符串,基本上,我希望能够在保留字母的同时取出字母中的法语重音符号.(例如转换é为e,所以crème brûlée会变成creme brulee)
实现这一目标的最佳方法是什么?
是否可以将字符串转换为序数大写或小写.类似于不变量.
string upperInvariant = "ß".ToUpperInvariant();
string lowerInvariant = "ß".ToLowerInvariant();
bool invariant = upperInvariant == lowerInvariant; // true
string upperOrdinal = "ß".ToUpperOrdinal(); // SS
string lowerOrdinal = "ß".ToLowerOrdinal(); // ss
bool ordinal = upperOrdinal == lowerOrdinal; // false
Run Code Online (Sandbox Code Playgroud)
如何实现ToUpperOrdinal和ToLowerOrdinal?
编辑:如何获取序数字符串表示?同样,如何获得不变的字符串表示?也许这是不可能的,因为在上述情况下它可能是模糊的,至少对于序数表示.
EDIT2:
string.Equals("ß", "ss", StringComparison.InvariantCultureIgnoreCase); // true
Run Code Online (Sandbox Code Playgroud)
但
"ß".ToLowerInvariant() == "ss"; // false
Run Code Online (Sandbox Code Playgroud) 我需要将字符串中的重音替换为英语等价物
例如
ä= ae
ö= oe
Ö=大江
ü=你
我知道将它们从字符串中删除但我不知道更换.
如果您有任何建议,请告诉我.我在C#中编码
我只找到了StringComparison,但这对于Contains不起作用.另一个必要的事情是忽略案例,而"ä"应该等同于"a".