.Net缺省就是Unicode,不需要那么麻烦。 string s = "一1二2三3";
MessageBox.Show(s.Substring(0,3)); //一1二

解决方案 »

  1.   

    9494不过ASP 上你那个代码是很早飞鸟他们提出的,我的这个才正宗Function LeftCn(ObjStr, ObjLen)
        Dim i, newStr, strAsc,MaxLen
    MaxLen=Len(ObjStr)
    newStr=ObjStr
    If MaxLen>ObjLen Then
    ObjLen = ObjLen * 2     Do While ObjLen > 0 and i<MaxLen
            i = i + 1
            strAsc = Asc(Mid(ObjStr, i, 1))
            If strAsc > 255 Or strAsc < 1 Then ObjLen = ObjLen - 2 Else ObjLen = ObjLen - 1
        Loop     newStr = Left(ObjStr, i)
        If i < MaxLen Then newStr = newStr & "..."
    End If
        LeftCn = newStr
    End Function
      

  2.   

    TheAres(班门斧) ,按照你的例子我要求得到的结果是
    string s = "一1二2三3";
    MessageBox.Show(s.SubStr(0,3)); //一1
    public string SubStr(string str)
    {
    ...
    }因为一个汉字占两个字符