转换 塞尔维亚西里尔语 为 拉丁语 - 卡戎问题



我正在使用简单的字典将西里尔字母替换为拉丁字母,大多数时候它工作正常,但我在使用卡戎字母时遇到问题(čšđćž...

几个例子:

从"MEЂУНАРОДНО"我得到这个"ME\u0110UNARODNO"而不是"MEĐUNARODNO">

从"ЖИВОТ"我得到"\u017DIVOT"而不是"ŽIVOT">

从"ЧАС"我得到"\u010CAS"而不是"ČAS">

任何人都知道为什么,当然还有什么可能的解决方案?谢谢

这是我正在使用的代码和字典。

public string ConvertCyrillicToLatin(string text)
{
Dictionary<string, string> words = new Dictionary<string, string>();
words.Add("А", "A");
words.Add("Б", "B");
words.Add("В", "V");
words.Add("Г", "G");
words.Add("Д", "D");
words.Add("Ђ", "Đ");
words.Add("Е", "E");
words.Add("Ж", "Ž");
words.Add("З", "Z");
words.Add("И", "I");
words.Add("Ј", "J");
words.Add("К", "K");
words.Add("Л", "L");
words.Add("Љ", "Lj");
words.Add("М", "M");
words.Add("Н", "N");
words.Add("Њ", "Nj");
words.Add("О", "O");
words.Add("П", "P");
words.Add("Р", "R");
words.Add("С", "S");
words.Add("Т", "T");
words.Add("Ћ", "Ć");
words.Add("У", "U");
words.Add("Ф", "F");
words.Add("Х", "H");
words.Add("Ц", "C");
words.Add("Ч", "Č");
words.Add("Џ", "Dž");
words.Add("Ш", "Š");
words.Add("а", "a");
words.Add("б", "b");
words.Add("в", "v");
words.Add("г", "g");
words.Add("д", "d");
words.Add("ђ", "đ");
words.Add("е", "e");
words.Add("ж", "ž");
words.Add("з", "z");
words.Add("и", "i");
words.Add("ј", "j");
words.Add("к", "k");
words.Add("л", "l");
words.Add("љ", "lj");
words.Add("м", "m");
words.Add("н", "n");
words.Add("њ", "nj");
words.Add("о", "o");
words.Add("п", "p");
words.Add("р", "r");
words.Add("с", "s");
words.Add("т", "t");
words.Add("ћ", "ć");
words.Add("у", "u");
words.Add("ф", "f");
words.Add("х", "h");
words.Add("ц", "c");
words.Add("ч", "č");
words.Add("џ", "dž");
words.Add("ш", "š");
var source = text;
foreach (KeyValuePair<string, string> pair in words)
{
source = source.Replace(pair.Key, pair.Value);
}
return source;
}

就像评论中提到的大卫一样,检查 UI :) 所以我做到了。

因为前端仍然不存在,所以我使用 Chrome 调用 API 并检查结果,但在我切换到 Postman 后,错误的转换消失了,所以答案是检查你的 UI。

最新更新