【.Net】含Unicode的字符串截断 VB.NET C#

时间:2022-05-23 17:44:31
    Function AnsiLeftB(ByVal strArg As String, ByVal arg1 As Integer) As String
Dim unicodeEncoding As Encoding = Encoding.GetEncoding("Shift_JIS")
Dim unicodeBytes() As Byte = unicodeEncoding.GetBytes(strArg) Dim tempLen As Integer =
For i As Integer = To strArg.Length
Dim j As Integer = unicodeEncoding.GetByteCount(strArg(i))
If tempLen + j <= arg1 Then
tempLen = tempLen + j
Else
Exit For
End If
Next
Dim tempBytes(tempLen) As Byte
Array.Copy(unicodeBytes, tempBytes, tempLen)
AnsiLeftB = unicodeEncoding.GetString(tempBytes)
End Function