1.九月了,第一个工作日里发现了这个,powershell 的 -split 方法可以区分中文和英文字符,但属性length和substring不能,这可折腾惨了吾这株疙瘩,解铃还须系铃人,不得不通过 -split 来解决。
$y=0
for($x=1; $x -lt $s.length; $x=$x+1)
{
$z=$s.Substring($x-1,1)
if ($z -ne '') {$y+=1} else {break;}
}
$s=$s.Substring(0,$y)
若问吾这头呆驴怎么要这么绕圈,源于$s是从系统获取的字符串变量,坑在某农在其应用名后加了隐藏字符,转义了加在字符串末尾的单引号,致使以前顺利能跑的脚本报错,如水光阴就这样僵映在。之前PHP遇上隐藏字符,绕了绕还是有法显示出来,这回通过网上搜的放转ascii码,怎么就是没找到异常呢,/u20/u2e/u32看起来很正常,就是通过length属性得到的字符串长度相较其中的中文字符多出一截而不成比例,一时又不明所以,记之待续。