以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何获取排列整齐的字符长度?换言之,如何计算中文和英文或者符号的真实长度?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135454)

--  作者:诚学思行
--  发布时间:2019/5/27 10:59:00
--  如何获取排列整齐的字符长度?换言之,如何计算中文和英文或者符号的真实长度?

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

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

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

 

怎么处理这种情况?

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

 


--  作者:有点甜
--  发布时间:2019/5/27 11:00:00
--  

参考

 

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


--  作者:有点甜
--  发布时间: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)


--  作者:诚学思行
--  发布时间:2019/5/27 11:12:00
--  回复:(有点甜)参考 Dim s = "中国ABC"Dim...

Encoding.default.GetBytes(s).Length

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


--  作者:有点甜
--  发布时间:2019/5/27 11:49:00
--  
以下是引用诚学思行在2019/5/27 11:12:00的发言:

Encoding.default.GetBytes(s).Length

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

 

是的。


--  作者:诚学思行
--  发布时间:2019/5/27 11:51:00
--  回复:(有点甜)以下是引用诚学思行在2019/5/27 11:1...

甜老师,非常感谢!

非常整齐!