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

    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 = 0
        For i As Integer = 0 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

时间: 2024-10-25 02:00:54

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

JavaSE8基础 String getBytes 将不含中文的字符串转换成字节数组

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        code: package jizuiku.t01; import java.nio.charset.Charset; public class Demo01 { public static void main(String[] args) { String str = "[email protected]#$&qu

十六进制Unicode编码字符串与中文字符串的相互转换

图书馆客户端项目中遇到的一个问题,得到的URL 是这样的 String baseurl = "http://innopac.lib.xjtu.edu.cn/availlim/search~S1*chx?/X{u848B}{u4ECB}{u77F3}&searchscope=1&SORT=DZ/X{u848B}{u4ECB}{u77F3}&searchscope=1&SORT=DZ&extended=0&SUBKEY=%E8%92%8B%E4%BB%

c# 实现获取汉字十六进制Unicode编码字符串

1.  汉字转十六进制UNICODE编码字符串 /// <summary>        /// ////        /// </summary>        /// <param name="character"></param>        /// <returns></returns>        public string CharacterToCoding(string character)  

统计含&quot;a&quot;或者含&quot;A&quot;的字符串个数

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>含a或A的字符</title></head><body><script>//题目:统计含a 或者含 A 的字符串个数//script中数组的用()or[]来定义. var char=new Array("Americ

VC中含中英文的\u格式UNICODE字符串转UNICODE可见字符串

JAVA使用UTF-8格式字符串,JAVA与C++通信时将UTF-8串转为UNICODE串,如“ABCDabcd中国人民下沙123.杭州”转为UNICODE后外观如下: \u41\u42\u43\u44\u61\u62\u63\u64\u4e2d\u56fd\u4eba\u6c11\u4e0b\u6c99\u31\u32\u33\u2e\u676d\u5dde VC中如下处理即可转回来 CString CXXClass::UnicodeToString() { CString strUnicod

Unicode 检查字符串是否含中文字(函数)

// 字串含中文 by Aone function IsIncludeChinese(Str: String): Boolean; var i: Integer; UCS4Str: UCS4String; begin Result := False; UCS4Str := UnicodeStringToUCS4String(Str); for i:=Low(UCS4Str) to High(UCS4Str) do if ((UCS4Str[i] >= $3400) and (UCS4Str[i]

多字符集(ANSI)和UNICODE及字符串处理方式准则

在我们编写程序的时候,使用最多的是字符串的处理,而ANSI和UNICODE的相互转换经常搞的我们头晕眼乱. 应该说UNICODE是一种比较好的编码方式,在我们的程序中应该尽量使用UNICODE编码方式,我们在编写程序的时候,最好能依据下面的准则来进行: 基本准则: 1.将文本字符串想象为字符数组,而非char或字节数组 2.开始使用通用数据类型来表示文本字符和字符串(如TCHAR,PTSTR) 原因是我们可以在WinNT.h的头文件中找到如下定义(代码有删改): [cpp] view plain

深入理解苹果系统(Unicode)字符串的排序方法

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由iminder发表于云+社区专栏 Unicode编码 我们知道计算机是不能直接处理文本的,而是和数字打交道.因此,为了表示文本,就建立了一个字符到数字的映射表,叫做编码.最著名的字符编码就是ASCII了,它使用7-bit来表示应用字母表以及数字和其他字符.这对于英语来说是够用了,但是对于其他语言,这个7-bit就不能满足条件了,因为字符远远超过了7-bit所能表示的最大个数.因此1987年,来自几个大的科技公司的工程师开始合作开发

转载--经验总结:应对中文输入法的字符串截断方案(带代码示例)

本文转自:http://www.cnblogs.com/chyingp/p/3599641.html 遇到这么个需求,允许用户修改自己的名片,名片最大长度支持8个汉字(24个字节),当用户输入超过8个汉字,则不允许用户继续输入. 最初的思路:oninput你好 很常见的需求,觉得驾轻就熟,监听input事件,当输入内容发生变化的时候,获得用户输入内容,并进行截断操作(如果超出的话).主要代码如下.一切显得那么美好,直到中文输入法出现. ps:本文用例均在 chrome 版本 33.0.1750.