下記の比較方法で戻り値が両方-1の方法を使ってみてください。
(sortnoteやsortstrでも大丈夫だと思います)
#uselib "kernel32.dll"
#cfunc lstrcmp "lstrcmpA" str, str
#cfunc CompareString "CompareStringA" int, int, str, int, str, int
#uselib "msvcrt.dll"
#cfunc strcmp "strcmp" str, str
#cfunc strcoll "strcoll" str, str
#func setlocale "setlocale" int, str
#define LOCALE_USER_DEFAULT 0x400
#define LC_ALL 0
setlocale LC_ALL, "" // strcollの為
u = "ウ"
vu = "ヴ"
e = "エ"
mes "!=で比較"
mes u != vu
mes vu != e
mes "\nstrcmpで比較"
mes strcmp(u, vu)
mes strcmp(vu, e)
mes "\nstrcollで比較"
// setlocaleのp2で結果が変わる
mes strcoll(u, vu)
mes strcoll(vu, e)
mes "\nCompareStringで比較"
// 戻り値の規則をあわせる為-2しています
mes CompareString(LOCALE_USER_DEFAULT, 0, u, -1, vu, -1) - 2
mes CompareString(LOCALE_USER_DEFAULT, 0, vu, -1, e, -1) - 2
mes "\nlstrcmpで比較"
mes lstrcmp(u, vu)
mes lstrcmp(vu, e)
stop