-- local function checkPlayName( str )

-- str = Utils.utf8_to_unicode(str)
-- local retStr = ""
-- local num = 0
-- local lenInByte = #str
-- local x = 1

-- for i=1,lenInByte do
-- i = x
-- local curByte = string.byte(str, x)
-- local byteCount = 1;
-- if curByte>0 and curByte<=127 then
-- byteCount = 1
-- elseif curByte>127 and curByte<240 then
-- byteCount = 3
-- elseif curByte>=240 and curByte<=247 then
-- byteCount = 4
-- end
-- local curStr = string.sub(str, i, i+byteCount-1)
-- retStr = retStr .. curStr
-- x = x + byteCount
-- if x >= lenInByte then
-- local finalRetStr = Utils.unicode_to_utf8(retStr)
-- return finalRetStr
-- end
-- num = num + 1
-- if num >= 24 then
-- retStr = retStr.."..."
-- local finalRetStr = Utils.unicode_to_utf8(retStr)
-- return finalRetStr
-- end
-- end
-- local finalRetStr = Utils.unicode_to_utf8(retStr)
-- return finalRetStr
-- end
-- Utils.checkPlayName = checkPlayName

-- local bit = require("bit")

-- local function unicode_to_utf8(convertStr)

-- if type(convertStr)~="string" then
-- return convertStr
-- end

-- local resultStr=""
-- local i=1
-- while true do

-- local num1=string.byte(convertStr,i)
-- local unicode

-- if num1~=nil and string.sub(convertStr,i,i+1)=="\\u" then
-- unicode=tonumber("0x"..string.sub(convertStr,i+2,i+5))
-- i=i+6
-- elseif num1~=nil then
-- unicode=num1
-- i=i+1
-- else
-- break
-- end

-- print(unicode)

-- if unicode <= 0x007f then

-- resultStr=resultStr..string.char(bit.band(unicode,0x7f))

-- elseif unicode >= 0x0080 and unicode <= 0x07ff then

-- resultStr=resultStr..string.char(bit.bor(0xc0,bit.band(bit.rshift(unicode,6),0x1f)))

-- resultStr=resultStr..string.char(bit.bor(0x80,bit.band(unicode,0x3f)))

-- elseif unicode >= 0x0800 and unicode <= 0xffff then

-- resultStr=resultStr..string.char(bit.bor(0xe0,bit.band(bit.rshift(unicode,12),0x0f)))

-- resultStr=resultStr..string.char(bit.bor(0x80,bit.band(bit.rshift(unicode,6),0x3f)))

-- resultStr=resultStr..string.char(bit.bor(0x80,bit.band(unicode,0x3f)))

-- end

-- end

-- resultStr=resultStr..'\0'

-- print(resultStr)

-- return resultStr

-- end
-- Utils.unicode_to_utf8 = unicode_to_utf8

-- local function utf8_to_unicode(convertStr)

-- if type(convertStr)~="string" then
-- return convertStr
-- end

-- local resultStr=""
-- local i=1
-- local num1=string.byte(convertStr,i)

-- while num1~=nil do

-- print(num1)

-- local tempVar1,tempVar2

-- if num1 >= 0x00 and num1 <= 0x7f then

-- tempVar1=num1

-- tempVar2=0

-- elseif bit.band(num1,0xe0)== 0xc0 then

-- local t1 = 0
-- local t2 = 0

-- t1 = bit.band(num1,bit.rshift(0xff,3))
-- i=i+1
-- num1=string.byte(convertStr,i)

-- t2 = bit.band(num1,bit.rshift(0xff,2))

-- tempVar1=bit.bor(t2,bit.lshift(bit.band(t1,bit.rshift(0xff,6)),6))

-- tempVar2=bit.rshift(t1,2)

-- elseif bit.band(num1,0xf0)== 0xe0 then

-- local t1 = 0
-- local t2 = 0
-- local t3 = 0

-- t1 = bit.band(num1,bit.rshift(0xff,3))
-- i=i+1
-- num1=string.byte(convertStr,i)
-- t2 = bit.band(num1,bit.rshift(0xff,2))
-- i=i+1
-- num1=string.byte(convertStr,i)
-- t3 = bit.band(num1,bit.rshift(0xff,2))

-- tempVar1=bit.bor(bit.lshift(bit.band(t2,bit.rshift(0xff,6)),6),t3)
-- tempVar2=bit.bor(bit.lshift(t1,4),bit.rshift(t2,2))

-- end

-- resultStr=resultStr..string.format("\\u%02x%02x",tempVar2,tempVar1)
-- print(resultStr)

-- i=i+1
-- num1=string.byte(convertStr,i)
-- end

-- print(resultStr)

-- return resultStr

-- end
-- Utils.utf8_to_unicode = utf8_to_unicode

无视编码都统一转成unicode 然后截断 例如 。“发发发发发发” 操作之后显示为 “发发发发...”的更多相关文章

  1. 不同格式的ip 统一转成ip列表

    支持以下格式的ip地址: 192.168.1.0/24 192.168.1.1-23 192.168.1.123 代码如下: package finder; import java.net.InetA ...

  2. 编码GBK和GB2312、Unicode、UTF-8

    一.编码GBK和GB2312 随着计算机发展,各国已经不满足于单纯用ASCII码: 对于我们来说能在计算机中显示中文字符是至关重要的,所以我们还需要一张关于中文和数字对应的关系表: 一个字节8位二进制 ...

  3. 控制台程序的中文输出乱码问题(export LC_CTYPE=zh_CN.GBK,或者修改/etc/sysconfig/i18n为zh_CN.GBK。使用setlocale(LC_CTYPE, "");会使用默认办法。编译器会将源码做转换成Unicode格式,或者指定gcc的输入文件的编码参数-finput-charset=GBK。Linux下应该用wprintf(L"%ls/n",wstr))

    今天发现用securecrt登陆时,gcc编译出错时会出现乱码,但直接在主机的窗口界面下用Shell编译却没有乱码.查看了一下当时的错误描述,发现它的引号是中文引号,导致在SecureCRT中显示出错 ...

  4. 字符编码笔记:ASCII,Unicode和UTF-8

    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节". 再后来,他们又做了一些可以处理 ...

  5. 字符编码笔记:ASCII,Unicode和UTF-8 转

    本文出处 http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 只是为了记录一下省得要去搜. 今天中午,我突然想搞清楚 ...

  6. [转]字符编码笔记:ASCII,Unicode和UTF-8

    转自:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 作者: 阮一峰 日期: 2007年10月28日 今天中午, ...

  7. 字符编码笔记:ASCII,Unicode和UTF-8(转载)

    作者: 阮一峰 日期: 2007年10月28日 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步 ...

  8. UTF-8编码的字符串拆分成单字、获取UTF-8字符串的字符个数的代码及原理

    一.字符编码简介 1. ASCII码 在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(by ...

  9. 字符编码笔记:ASCII,Unicode和UTF-8【转载】

    作者: 阮一峰 日期: 2007年10月28日 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步 ...

随机推荐

  1. Markdown使用笔记

    下载地址:http://markdownpad.com/ 简明版 Markdown 语法说明(简体中文版) 完整版 Markdown 语法说明(简体中文版) 官方文档:http://www.markd ...

  2. shell脚本作为cgi程序--以web版man为例

    man.cgi源码 #! /bin/sh eval `sh proccgi.sh $*` echo "Content-type: text/html" echo echo echo ...

  3. mysql/mariadb应该使用utf8mb4而不是utf8

    详情参考https://mp.weixin.qq.com/s?__biz=MzIwMzg1ODcwMw==&mid=2247487968&idx=1&sn=2ff7b511f6 ...

  4. bzoj 3262 陌上花开 - CDQ分治 - 树状数组

    Description 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),又三个整数表示.现要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量.定义一朵花A比另一朵花B要美丽,当 ...

  5. poj 1159 Palindrome - 动态规划

    A palindrome is a symmetrical string, that is, a string read identically from left to right as well ...

  6. Arrays的排序算法sort及方法使用

    Java工具包中的Arrays工具类里面有数组的快速排序算法. 源码如下: /** * Sorts the specified range of the array using the given * ...

  7. B/S交互过程及tomcat体系结构

    浏览器与服务器交互过程: 1.浏览器根据主机名,如www.baidu.com,去操作系统的hosts文件中查找主机名对应的ip地址. 2.如果查找不到,则会去互联网上的dns服务器上查找主机名对应的i ...

  8. DPAA1是如何辅助cpu进行网络加速的?

    1.为何会出现DPAA1? 1.1 如果没有多核处理器的出现可能就不会出现这个东东了! 1.2 怎么会跟多核处理器扯上关系呢? 1.2.1 先聊聊单核处理器会怎么处理网络包呢? 单核同一时刻只能处理一 ...

  9. Ubuntu 18.04 休眠后无法唤醒的解决办法

    解决办法:安装laptop-mode-tools工具包. 1.检查是否安装了grep laptop-mode-tools 工具包 $ dpkg -l | grep laptop-mode-tools ...

  10. R class of subset of matrix and data.frame

    a = matrix(     c(2, 4, 3, 1, 5, 7), # the data elements     nrow=2,              # number of rows   ...