`

utf-8字符集字符串切断处理

阅读更多
      由于utf-8字符集的中文字符串所占用的字节数是不定的,英文可只占一位。而中文占2位或3位。因此不能采用直接取字符串的方式进行切断,如果这样切断的话就可能会在字符串的尾部开成无效的字符。

     本函数的主要功能就是按指定的长度对utf-8字符集的字符串进行切断,如果字符串的长度大小指定的长度就在尾部加上“...”以表示字符串没有切束。



#对utf-8字符集进行切断处理,返回len个字符,中文和英文字符都当作一个计算。
def sub_utf8 text,len,endss="..."
  t=i=max=0
  slen=text.length
  while t<len
   if text[i]<= 0x7f
    i=i+1
   elsif text[i]<= 0xc0
    i=i+2
   else
    i=i+3
   end
   if(i>=slen)
       max=1
       break
   end
   t=t+1
  end
 
  ret=text[0..i-1]
 
  if max==0
   ret<<endss
  end

  #print " slen:#{slen} get:#{i}================ "
  return ret
end
1
0
分享到:
评论

相关推荐

    UTF-8字符集汉字对照表.txt

    此文本文档是UTF-8字符集中汉字编码对照表,可以用于查看某个汉字在UTF-8编码集中的位置。此编码集对照表非官网下载,如需使用,请提前预估风险。另外,此对照表只用于学习研究,如需用到其他地方,后果自负。

    常用汉字utf-8字符集.txt

    ### 常用汉字UTF-8字符集解析与应用 #### 概述 在数字信息时代,字符编码是数据处理的基础。UTF-8(8位通用转换格式)是一种可变长度的字符编码,用于表示Unicode标准中的字符。《常用汉字utf-8字符集》主要收集了...

    utf-8.rar_c++ string utf-8_string to utf-8_utf_utf 8_utf-8

    如果需要处理UTF-8编码,可能需要额外的库支持,如Boost.Locale或者ICU库,这些库提供了对多字节字符集(包括UTF-8)的支持。 转换`std::string`到UTF-8通常不是必要的,因为`std::string`默认就可以存储UTF-8编码...

    UTF-8 中文字符集表

    UTF-8 中文 字符集表 免费share UTF-8 ---&gt; Chinese Charset Table

    UTF-8字符集基础

    UTF-8字符集基础 UTF-8字符集基础

    UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_

    UTF-8的优势在于对ASCII字符集的兼容性,前128个Unicode字符(包括英文、数字和常见符号)只需要一个字节表示,这使得UTF-8在互联网上广泛使用,因为其与ASCII的兼容性可以减少传输数据量。此外,UTF-8也支持全球大...

    Patchwork UTF-8:处理UTF-8格式字符串的便携类库.zip

    Patchwork UTF-8是一个便携式C++类库,专门设计用于处理UTF-8编码的字符串。UTF-8是一种广泛使用的Unicode字符编码方案,能够表示Unicode标准中的所有字符,包括各种语言的字母、数字和符号。这个类库的出现是为了在...

    C# 生成xml文件,编码为utf-8方法

    最后,使用 MemoryStream 对象的 ToArray 方法将 XML 数据转换为 byte 数组,然后使用 Encoding.UTF8.GetString 方法将其转换为 UTF-8 编码的字符串。 在上面的代码中,首先创建了一个 MemoryStream 对象,然后创建...

    PB字符串转XML文件,解决PB12.5创建UTF-8文件BOM问题(powerbuilder 12.5)

    由于项目需要,需要字符串转为XML文件,直接用Fileopen进行EncodingUTF8编码后,发现文件实际为UTF-8 BOM编码 问度娘发现有相同问题,但解决方式是利用新建一个UTF-8的TXT文件后,再进行COPY加内容。感觉这样操作...

    gb2312,utf-8,utf-8-bom等编码格式的互相转换

    UTF-8,即“统一字符集的8位无符号格式”,是一种变长编码,可以表示Unicode字符集中所有的字符。对于ASCII字符(如英文字符),UTF-8只用一个字节,而对于非ASCII字符,如汉字,可能需要2到4个字节。UTF-8的最大...

    c++ UTF-8 UTF-16转换

    Windows系统提供了API函数来进行Unicode转换,如`MultiByteToWideChar`和`WideCharToMultiByte`,这些函数分别用于将多字节字符串(如UTF-8)转换为宽字节字符串(如UTF-16LE),反之亦然。但在跨平台的项目中,我们...

    字符编码转换类,支持 ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom互相转换

    - 将字符串从ANSI转换为Unicode或UTF-8 - 将Unicode(Little Endian或Big Endian)转换为其他编码 - 实现UTF-8与UTF-8+BOM之间的转换 - 提供批量转换文件或目录中所有文件的编码的功能 使用这样的类,你可以方便地...

    oracle,GBK,UTF-8字符集下获取拼音首字母_拼音截取等

    oracle,GBK,UTF-8字符集下获取拼音首字母_拼音截取等 oracle汉字转拼音package_获得全拼—GBK—拼音首字母_拼音截取 oracle汉字转拼音package_获得全拼—UTF8—拼音首字母_拼音截取 还实例。

    ASCII 及UTF-8 与字符互相转换

    ASCII 和 UTF-8 是两种广泛使用的字符编码标准,它们在计算机科学中扮演着重要的角色,尤其是在文本处理和数据传输方面。这两个编码系统都是为了将人类可读的字符转化为计算机可以理解的形式,但它们的设计和使用...

    GB2312字符与UTF-8字符互转

    LabVIEW 自带的VI,可以实现GB2312字符与UTF-8字符互,用在网络字符转换很方便。输入隐藏功能,自己很难找到。

    C#写的 GBK GB2312 UTF-8转换

    在这个例子中,`Encoding.GetEncoding("GBK")`获取了GBK编码器,`GetBytes()`方法将GBK编码的字符串转换为字节数组,然后`Encoding.UTF8.GetString()`将这个字节数组还原为UTF-8编码的字符串。 对于文件的编码转换...

    UTF-8 汉字码表

    UTF-8作为一种高效且全面的字符编码方案,在互联网、软件开发和数据处理等领域中扮演着核心角色。通过对码表的理解和运用,我们不仅能够有效处理全球各种语言的文本,还能促进文化的交流和信息的无障碍传播。随着...

    lua utf-8字符的相关操作

    lua utf-8字符的相关操作,字符裁剪 获取字符长度等操作,能准确的获得中文字符长度。

    VBA Fans读取和写入UTF-8格式文本文件

    一个常见的方法是先将UTF-8文件转换为字节流,然后解码为字符串。以下是一个示例: ```vba Dim fileNum As Integer Dim byteArr() As Byte fileNum = FreeFile() Open "C:\Path\To\file.txt" For Binary ...

    UTF-8转ANSI文本文件转换器

    综上所述,"UTF-8转ANSI文本文件转换器"涉及到了字符编码的基础知识、编码转换的原理以及批量处理和代码设计的实践。理解和掌握这些知识点,对于处理文本文件编码问题、开发相关工具或理解软件内部工作流程都...

Global site tag (gtag.js) - Google Analytics