Обнаружил такой баг, попался намедни текст, который никак не хотел сравниваться, ни "=", ни "==", ни StringCompare() не помогали... Опытным путём выяснил, что это из-за символа ChrW(422) и его нижний регистр ChrW(640)
Может есть сторонние методы сравнение такого?
Может есть сторонние методы сравнение такого?
Код:
$sSym=ChrW(422)
$sSymLow=StringLower($sSym)
; $sSym=ChrW(640)
; $sSymLow=StringUpper($sSym)
If $sSym=$sSymLow Then
MsgBox(4096,"","Равны без учёта регистра"&@CRLF&"$sSym =>"&$sSym&"<="&@CRLF&"$sSymLow =>"&$sSymLow&"<=")
Else
MsgBox(4096,"","Не равны без учёта регистра"&@CRLF&"$sSym =>"&$sSym&"<="&@CRLF&"$sSymLow =>"&$sSymLow&"<=")
EndIf
If $sSym==$sSymLow Then
MsgBox(4096,"","Равны с учётом регистра"&@CRLF&"$sSym =>"&$sSym&"<="&@CRLF&"$sSymLow =>"&$sSymLow&"<=")
Else
MsgBox(4096,"","Не равны с учётом регистра"&@CRLF&"$sSym =>"&$sSym&"<="&@CRLF&"$sSymLow =>"&$sSymLow&"<=")
EndIf
If 0=StringCompare($sSym,$sSymLow)Then
MsgBox(4096,"","Равны без учёта регистра"&@CRLF&"$sSym =>"&$sSym&"<="&@CRLF&"$sSymLow =>"&$sSymLow&"<=")
Else
MsgBox(4096,"","Не равны без учёта регистра"&@CRLF&"$sSym =>"&$sSym&"<="&@CRLF&"$sSymLow =>"&$sSymLow&"<=")
EndIf
If 0=StringCompare($sSym,$sSymLow,1) Then
MsgBox(4096,"","Равны с учётом регистра"&@CRLF&"$sSym =>"&$sSym&"<="&@CRLF&"$sSymLow =>"&$sSymLow&"<=")
Else
MsgBox(4096,"","Не равны с учётом регистра"&@CRLF&"$sSym =>"&$sSym&"<="&@CRLF&"$sSymLow =>"&$sSymLow&"<=")
EndIf