Foxtable(狐表)用户栏目专家坐堂 → 如何获取排列整齐的字符长度?换言之,如何计算中文和英文或者符号的真实长度?


  共有2316人关注过本帖树形打印复制链接

主题:如何获取排列整齐的字符长度?换言之,如何计算中文和英文或者符号的真实长度?

帅哥哟,离线,有人找我吗?
诚学思行
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:440 积分:3489 威望:0 精华:0 注册:2017/3/8 0:04:00
如何获取排列整齐的字符长度?换言之,如何计算中文和英文或者符号的真实长度?  发帖心情 Post By:2019/5/27 10:59:00 [只看该作者]

我想写一个函数把字符串补齐到指定长度。

但我发现及时不起之后,看起来还是不整齐。

因为,.Length 虽然都等于2 但“中国”和 “AB”显然不一样长。

 

怎么处理这种情况?

换言之,如何计算中文和英文或者符号的真实长度?

 


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/27 11:00:00 [只看该作者]

参考

 

Dim s = "中国ABC"
Dim c = Encoding.default.GetBytes(s)
msgbox(c.length)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/27 11:03:00 [只看该作者]

读取像素长度,参考

 

Dim g As Graphics = basemainform.creategraphics
Dim fnt As New Font("宋体",9)
Dim msg As String = "abc"
Dim size = g.MeasureString(msg, fnt)
msgbox(size.width)


 回到顶部
帅哥哟,离线,有人找我吗?
诚学思行
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:440 积分:3489 威望:0 精华:0 注册:2017/3/8 0:04:00
回复:(有点甜)参考 Dim s = "中国ABC"Dim...  发帖心情 Post By:2019/5/27 11:12:00 [只看该作者]

Encoding.default.GetBytes(s).Length

这样是获取到s的字节数吗?(1个汉字 = 2个字节)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/27 11:49:00 [只看该作者]

以下是引用诚学思行在2019/5/27 11:12:00的发言:

Encoding.default.GetBytes(s).Length

这样是获取到s的字节数吗?(1个汉字 = 2个字节)

 

是的。


 回到顶部
帅哥哟,离线,有人找我吗?
诚学思行
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:440 积分:3489 威望:0 精华:0 注册:2017/3/8 0:04:00
回复:(有点甜)以下是引用诚学思行在2019/5/27 11:1...  发帖心情 Post By:2019/5/27 11:51:00 [只看该作者]

甜老师,非常感谢!

非常整齐!

 

 


 回到顶部