Post by tmplinshi » 18 Sep 2014, 12:41
比如
StrLen("1全角") 在 ANSI 中的结果是 5,而 Unicode 中的结果是 3。
我的问题是,如何能在 Unicode 中也获得结果 5?
更新: 找到了一个方法
Code: Select all
MsgBox, % StrLenA("1全角")
StrLenA(string) { ; 注: 不太正确,全角符号不能计算为2
Loop, Parse, string
len += ( Asc(A_LoopField) < 0x2E80 or Asc(A_LoopField) > 0x9FFF ) ? 1 : 2
Return len
}
有更好的方法吗?
比如 [c]StrLen("1全角")[/c] 在 ANSI 中的结果是 5,而 Unicode 中的结果是 3。
我的问题是,如何能在 Unicode 中也获得结果 5?
[color=#BF0000][b]更新[/b]: 找到了一个方法[/color]
[code=autohotkey file=Script.ahk]
MsgBox, % StrLenA("1全角")
StrLenA(string) { ; 注: 不太正确,全角符号不能计算为2
Loop, Parse, string
len += ( Asc(A_LoopField) < 0x2E80 or Asc(A_LoopField) > 0x9FFF ) ? 1 : 2
Return len
}[/code]
[color=#BF0000]有更好的方法吗?[/color]