我知道windows内核采用unicode,那么,其编码方式采用的是UTF-8还是UTF-16还是UTF-32?

时间:2021-10-30 22:45:24
我猜是UTF-16,不知是否?
如果真的是UTF-16,通过什么办法可以验证使UTF-16?

7 个解决方案

#1


W系列的函数,TextOutW之类的,传一个UTF16的字节数组进去,看是否显示正常
不知道行不行

#2


是...UTF-16

#3


不搭的吧
unicode 是用两个字节表示一个字符信息

utf-8是分单字节字符,和多字节字符的

#4


采用的应该是UTF-16,望求验证啊。。

#5


当然是‘UTF-16’,且 ‘little endian’ 了。
验证?
啊 unicode 0x554A
调用gdi32.dll!TextOutW让参数lpString指向0x4a,0x55,cbString=1试试看能不能显示‘啊’

#6


在windwos vista(个人观点windows 7也是如此)中,每个Unicode字符都使用UTF-16编码。
.NET Framework始终使用UTF-16来编码所有字符和字符串。

在该书中,除非特殊说明,否则一般指UTF-16。因为全球各地使用的大部分语言中,每个字符很容易用一个16位值表示。这样,应用程序很容易遍历字符串并计算出它的长度。

--参考《windows核心编程》第二章

#7


可以使用本人的免费程序,得到字符的不用编码
http://download.csdn.net/source/2991116

#1


W系列的函数,TextOutW之类的,传一个UTF16的字节数组进去,看是否显示正常
不知道行不行

#2


是...UTF-16

#3


不搭的吧
unicode 是用两个字节表示一个字符信息

utf-8是分单字节字符,和多字节字符的

#4


采用的应该是UTF-16,望求验证啊。。

#5


当然是‘UTF-16’,且 ‘little endian’ 了。
验证?
啊 unicode 0x554A
调用gdi32.dll!TextOutW让参数lpString指向0x4a,0x55,cbString=1试试看能不能显示‘啊’

#6


在windwos vista(个人观点windows 7也是如此)中,每个Unicode字符都使用UTF-16编码。
.NET Framework始终使用UTF-16来编码所有字符和字符串。

在该书中,除非特殊说明,否则一般指UTF-16。因为全球各地使用的大部分语言中,每个字符很容易用一个16位值表示。这样,应用程序很容易遍历字符串并计算出它的长度。

--参考《windows核心编程》第二章

#7


可以使用本人的免费程序,得到字符的不用编码
http://download.csdn.net/source/2991116