首页 > 其他分享 >字符的宽度

字符的宽度

时间:2023-06-15 14:01:36浏览次数:33  
标签:字符 编码 函数 10 字符集 宽度 rpad


问题

数据库领域处理的问题,可真是包罗万象!有个 rpad 函数,它用来做 padding,保证结果集不超过规定的“宽度”:

字符的宽度_屏幕显示

字符的宽度_结果集_02

10 表示什么呢?这里 10 表示 10 个屏幕宽度。对于字母和数字,一个字母占1个宽度,对于中文,一个字占2个宽度。

这样一来,这个函数就有很实际的意义了:**为了打印漂亮,可以用 rpad/lpad 函数来统一格式化输出,确保屏幕上的输出整整齐齐。**无论什么字符集都能支持得很好。

标准

那么,世界上那么多文字,每个文字的宽度是多少,有规定吗?有,有标准:
https://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.chttps://pubs.opengroup.org/onlinepubs/007904975/functions/wcswidth.html

当你在实现 rpad 函数时,就需要考虑到这套国际标准定义,否则实现的效果就和标准不兼容了。

总结一下

对一个字,它有好多重属性:

  1. 他出现在什么字符集之下(UTF8,GBK,GB2312,etc)
  2. 它在字符集之下的编码是多少
  3. 它用了几个字节来存编码 (strlen_char、mb_length)
  4. 它的屏幕显示宽度是多少(和字符集无关)


标签:字符,编码,函数,10,字符集,宽度,rpad
From: https://blog.51cto.com/u_16162111/6486738

相关文章

  • JavaScript中将字符串转换为数字的七种方法总结 乘以数字: str = '2344'; console.lo
    JavaScript中将字符串转换为数字的七种方法总结乘以数字:str='2344';console.log(str*1)//expectedresult:2344https://www.jb51.net/article/261613.htm+目录1.使用parseInt()2.使用Number()3.使用一元运算符(+)4.使用parseFloat()5.使用Math.floor()6.乘......
  • VUE使用Element-ui表达式拼接字符串 el-table-column的prop拼接字符串 拼接table 使
    VUE使用Element-ui表达式拼接字符串el-table-column的prop拼接字符串使用<templateslot-scope="scope">更改td里面值https://blog.csdn.net/WindNolose/article/details/125422409描述VUE中的标签属性,可以在属性前使用:,让属性绑定到data中的动态数据el-table-column标......
  • 每日一道leetcode:8. 字符串转换整数 (atoi)
    1.题目(中等)题目链接请你来实现一个myAtoi(strings)函数,使其能将字符串转换成一个32位有符号整数(类似C/C++中的atoi函数)。函数myAtoi(strings)的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果......
  • javascript现代编程系列教程之七——字符集(七)
    Unicode:Unicode是一个字符集(Charset),包含了世界上所有的字符。每个字符在Unicode中都有其唯一对应的数字编号,这就是我们常说的Unicode码。UTF-8:UTF-8是Unicode的实现方式之一。UTF-8使用一至四个字节为每个字符编码,英文字符通常使用一个字节,西欧其他语言的部分字符使用......
  • 字符集编码
    什么是文本文件和文本编辑器文本文件文本文件是纯字符文件,它含有的所有字节必然能够采用某种字符集编码显示出字符,除了BOM字节。字符集和换行符。SUMMARY作者:KeenKwok链接:https://www.zhihu.com/question/41426907/answer/90924168来源:知乎著作权归作者所有。商业转载请......
  • python基础知识——字符串
    1、字符串的格式化python将若干值插入到带有“%”标记的字符串中,实现动态地输出字符串。格式:"%s"%str"%s%s"%(str_1,str_2)例如:str_0="I"str_1="Love"str_2="China"format="%s%s%s"%(str_0,str_1,str_2)printformat#ILoveChi......
  • StringPtr StringPtrs 字符串指针 字符串指针切片
    funcBoolPtr(vbool)*bool{  return&v}funcStringPtr(vstring)*string{  return&v} funcStringPtrs(vals[]string)[]*string{  ptrs:=make([]*string,len(vals))  fori:=0;i<len(vals);i++{    ptrs[i]=&v......
  • mongo聚合字符串类型的数字进行排序
    设置collationCollationcollation=Collation.of(Locale.CHINESE).numericOrdering(true);设置聚合选项Aggregationaggregation=Aggregation.newAggregation(Aggregation.match(orOperator),).withOptions(AggregationO......
  • 【数据结构和算法面试题】左旋转字符串
    问题分析:本题是常见的旋转字符串的问题,解决的方法是两步旋转的方法:方法:voiddo_reverse(char*p_start,char*p_end){ if(NULL==p_start||NULL==p_end||p_start>p_end)return; chartmp; while(p_start<p_end){ tmp=*p_start; *p_start=*p_end; *p_end......
  • 代码随想录算法训练营第七天| 344.反转字符串 、 541. 反转字符串II、 剑指Offer 05.
     344.反转字符串代码:1voidreverseString(vector<char>&s){23inti=0;4intj=s.size()-1;5while(i<j)6{7charmid=s[i];8s[i]=s[j];9s[j]=mid;1011i++;12......