递归火山软件开发平台

标题: 火山视窗与易语言 取文本长度()区别? [打印本页]

作者: 99101617    时间: 2023-12-22 11:50
标题: 火山视窗与易语言 取文本长度()区别?
我将一段易语言翻译为火山后,运行结果大不相同,结果才发现 两者 取文本长度()在汉字方面输出结果不一样,这个是因为两者的编码方式不一样导致的吗?网上查的是说易语言是字节编码,火山是Unicode编码导致。
易语言:
取文本长度(“1”)      结果:1
取文本长度(“a”)      结果:1
取文本长度(“一”)     结果:2

火山:
取文本长度(“1”)      结果:1
取文本长度(“a”)      结果:1
取文本长度(“一”)     结果:1


作者: 呵呵仙8    时间: 2023-12-22 12:20
是的,W码文本是一个字一个长度,A码文本是一个字节一个长度的!!
作者: 呵呵仙8    时间: 2023-12-22 12:23
这是系统API决定的,不是易语言或火山来决定它多长就多长的!
作者: hcwanz    时间: 2023-12-22 13:04
a码英文是一个字节,中文或类似的扩展字符是两个字节。火山的utf16,无论什么字符都是两个字节
作者: weilai    时间: 2023-12-22 13:13
编码不同,一个是GBK 一个是utf16小端序
作者: Xelloss0618    时间: 2023-12-22 15:57
无论是什么编码和编程语言,这取的都是文本的字符数量,只是不同编码的字符类型是不一样的。

ANSI的字符类型是char,一个字符占一个字节,一个字通常需要占用1到2个字符,有些比较特殊的编码,比如GB18030,会用4个字符来表达一些罕见的汉字。

UTF-8的字符也是char,所以英文数字可以跟ANSI兼容,一个字可以占用1到6个字符,通常只用到4字符。

UTF-16的字符类型是宽字符wchar_t,一个宽字符占用2个字节,通常一个宽字符就足够表达大部分汉字,部分比较罕见的和emoji表情需要用2个宽字符表达。

UTF-32的字符类型是chart32_t,一个宽字符就占用4个字节,所以一个宽字符就足够表达所有字,这种编码太占空间,很少用到。
作者: 创世魂    时间: 2023-12-22 19:41
一个字符长度,一个字节长度。




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4