Ответ 1
Это значение gI
, которое не равно gI
в случае вьетнамского языка. gI
(gI
) является слогом-начальным, вид одной буквы, а gI
- две отдельные буквы. Другие пары
cH != CH
kH != KH
nG != NG
nH != NH
pH != PH
qU != QU
tH != TH
tR != TR
У меня есть следующий код С# в моем приложении ASP.NET MVC. Я пытаюсь сравнить 2 string
с помощью метода Equals
, с culture = "vi"
. Мой код ниже:
string culture = "vi";
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Threading.Thread.CurrentThread.CurrentCulture;
var CCC = string.Equals("CategId", "CATEGID", StringComparison.CurrentCultureIgnoreCase);
var xx = string.Equals("TestGID", "TestGID", StringComparison.CurrentCultureIgnoreCase);
var zz = string.Equals("id", "ID", StringComparison.CurrentCultureIgnoreCase);
Результаты:
CCC = false;
xx = true;
zz = true;
Я не знаю, почему CCC
есть false
. Что-то не так? Если я установил culture = id, ko, en
и т.д., Тогда CCC = true
. Кто может мне помочь?
Это значение gI
, которое не равно gI
в случае вьетнамского языка. gI
(gI
) является слогом-начальным, вид одной буквы, а gI
- две отдельные буквы. Другие пары
cH != CH
kH != KH
nG != NG
nH != NH
pH != PH
qU != QU
tH != TH
tR != TR
Вы можете попробовать
string culture = "vi";
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Threading.Thread.CurrentThread.CurrentCulture;
var CCC = string.Equals("CategId", "CATEGID", StringComparison.InvariantCultureIgnoreCase);
var CCC1 = string.Equals("CategId", "CATEGID", StringComparison.CurrentCultureIgnoreCase);
В этом CCC
вернется true
, но CCC1
вернет false
из-за Culture. согласно вашей культуре GID
и GID
отличается.