• 关于 中英混合字符串长度 的搜索结果

回答

utf-8是3,gbk/gb2312是2PHP自带的函数如strlen()、mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节。例:$enStr = ‘Hello,China!’; echo strlen($enStr); // 输出:12而中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8。utf-8能兼容更多的字符,所以受到很多站长的喜爱。gbk与utf-8对中文的编码不同,导致中文在gbk与utf-8编码下所占字节也有差异。gbk编码下每个中文字符所占字节为2,例:$zhStr = ‘您好,中国!’; echo strlen($zhStr); // 输出:12utf-8编码下每个中文字符所占字节为3,例:$zhStr = ‘您好,中国!’; echo strlen($zhStr); // 输出:18那么如何计算这组中文字符串的长度呢?有人可能会说gbk下获取中文字符串长度除以2,utf-8编码下除以3不就行了吗?但是您要考虑字符串并不老实,99%的情况会以中英混合的情况出现。这是WordPress中的一段代码,主要思想就是先用正则将字符串分解为个体单元,然后再计算单元的个数即字符串的长度,代码如下(只能处理utf-8编码下的字符串):$zhStr = ‘您好,中国!’; $str = ‘Hello,中国!’; // 计算中文字符串长度 function utf8_strlen($string = null) { // 将字符串分解为单元 preg_match_all(“/./us”, $string, $match); // 返回单元个数 return count($match[0]); } echo utf8_strlen($zhStr); // 输出:6 echo utf8_strlen($str); // 输出:9

小旋风柴进 2019-12-02 02:01:15 0 浏览量 回答数 0

回答

1、char(n)类型     char类型时定长的类型,即当定义的是char(10),输入的是"abc"这三个字符时,它们占的空间一样是10个字节,包括7个空字节。当输入的字符长度超过指定的数时,char会截取超出的字符。而且,当存储char值时,MySQL是自动删除输入字符串末尾的空格。     char是适合存储很短的、一般固定长度的字符串。例如,char非常适合存储密码的MD5值,因为这是一个定长的值。对于非常短的列,char比varchar在存储空间上也更有效率。 2、varchar(n)类型      varchar(n)类型用于存储可变长的,长度为n个字节的可变长度且非Unicode的字符数据。n必须是介于1和8000之间的数值,存储大小为输入数据的字节的实际长度+1/2. 比如varchar(10), 然后输入abc三个字符,那么实际存储大小为3个字节。除此之外,varchar还需要使用1或2个额外字节记录字符串的长度,如果列的最大长度小于等于255字节(是定义的最长长度,不是实际长度),则使用1个字节表示长度,否则使用2个字节来表示。     所以,从空间上考虑,varcahr较合适;从效率上考虑,用char合适。二者之间需要权衡。     除了char和varchar之外,还有一种nchar、nvarchar(n),包含n个字符的可变长度为unicode字符数据。n的值必须介于1~4000之间,直接的存储大小是说输入字符个数的两倍,所输入的数据字符长度可以为零。从名字上看,多了一个n,表示存储的是unicode数据类型的字符,这是为了存储汉字用的,1个英文字母或者数字占用的字符为1个,一个汉字占用2个字符,那么对于有中英文混合的字符串,我们需要定义nvarchar类型。Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。 还有,text类型。其存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

AA大大官 2020-03-31 13:07:28 0 浏览量 回答数 0

问题

设计功能和界面测试用例

技术小菜鸟 2019-12-01 21:06:08 2874 浏览量 回答数 1

试用中心

为您提供0门槛上云实践机会,企业用户最高免费12个月

问题

设计功能和界面测试用例

技术小菜鸟 2019-12-01 21:40:51 2443 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播