Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c#将URL的非ascii字符转换为ascii字符?_C#_Asp.net - Fatal编程技术网

如何使用c#将URL的非ascii字符转换为ascii字符?

如何使用c#将URL的非ascii字符转换为ascii字符?,c#,asp.net,C#,Asp.net,这些字符将用于网站URL。 字符只能包含a-z和0-9 我试过使用,但没有成功 范例 /københavn>/koebenhavn /köln>/koln /克顿>/kton /Пцццц>(缺失) /北京市 > (缺失)听起来你想把“音译”变成基本拉丁语(有时称为ASCII),特别是罗马化 一个非常全面的库必须知道每种语言的每一个脚本中的每一个单词或字母模式。大多数人没有那么雄心勃勃,而是在一两封“信”的上下文中工作,将一种语言的规则应用于所有人。您可能需要修补数据(输入或输出)以对其进行微调

这些字符将用于网站URL。 字符只能包含a-z和0-9

我试过使用,但没有成功

范例

/københavn>/koebenhavn
/köln>/koln
/克顿>/kton
/Пцццц>(缺失)
/北京市 > (缺失)

听起来你想把“音译”变成基本拉丁语(有时称为ASCII),特别是罗马化

一个非常全面的库必须知道每种语言的每一个脚本中的每一个单词或字母模式。大多数人没有那么雄心勃勃,而是在一两封“信”的上下文中工作,将一种语言的规则应用于所有人。您可能需要修补数据(输入或输出)以对其进行微调

NuGet包Unidecode.NET(对于演示,还有MSTest.Framework)


你可以对字符串进行URL编码。我希望URL被搜索引擎优化。/koebenhavn的CTR比/kbenhavn高。我必须知道任何单词的名称。几乎可以工作的c代码。path=item.Name;path=path.ToLower().Replace(“,”);path=Utility.UnicodesToCharacter(path.ToLower();path=Regex.Replace(路径“[^a-z0-9-]”,字符串为空);
Assert.AreNotEqual("koebenhavn",   "københavn".Unidecode());
Assert.AreEqual(   "kobenhavn",    "københavn".Unidecode());
Assert.AreEqual(   "koln",         "köln"     .Unidecode());
Assert.AreNotEqual("kton",         "k'ton"    .Unidecode());
Assert.AreEqual(   "k'ton",        "k'ton"    .Unidecode());
Assert.AreEqual(   "privet",       "привет"   .Unidecode());
Assert.AreEqual(   "Bei Jing Shi ","北京市"   .Unidecode());