|
本帖最后由 求道者 于 2023-2-4 01:10 编辑
- CALL $--ret:&&ret --qd Kernel32.dll,GetPrivateProfileIntW,程序,外置工具模式,#0xFFFFFFFF,D:\FirPE.ini
- MESS %&&ret%
复制代码
https://www.codeproject.com/Arti ... nicode-in-INI-files
In Notepad included with Windows, we can choose 3 encoding formats in Unicode. These are "Unicode" (UTF16-little Endian), "Unicode big Endian" (UTF16-big Endian), and "UTF-8". We can use only UTF16-little endian of these formats as an INI file format. The other encodings do not work correctly (you examine it once). Probably, the reason is that Windows NT, XP or later uses the encoding internally. This is why Windows particularly names UTF16-little Endian "Unicode".
我在Win7下面转码了INI。
获得了所谓UNICODE编码的INI。
但还是读不到。
另外:
可能在Win语境下“UNICODE就是UNICODE,UTF-8就是UTF-8,它俩不同的呀 ”
- UTF-8、UTF-16、UTF-32 中的 "UTF" 是 "Unicode Transformation Format"
- 的缩写,意思是"Unicode 转换格式",后面的数 字表明至少使用多少个比特位来存储字符, 比如:UTF-8
- 最少需要8个比特位也就是一个字节来存储,对应的, UTF-16 和 UTF-32 分别需要最少 2 个字节 和 4 个字节来存储
复制代码
UTF-8也是UNICODE,是其子集。
即使是在Win平台,Web世界更认可UTF-8,不存在UTF-8不是UNICODE。
况且Linux/Unix/Mac/移动平台,用UTF-8。
只有Windows因为历史原因钦定UTF16-little Endian为唯一指定UNICODE。
倒不如说Windows才是孤例。
所以我“UNICODE编码是什么鬼东西?UTF-8(我的惯性思维,毕竟我是Linux用户)?还是指UTF-16?”
准确来讲这东西是UTF-16LE 带BOM。
扯完了,回归正题。
即使我转换了正确的编码依旧无法读取。
我特意用AHK生成了标准的INI。
但还是无法读取。
附上INI。
顺带一提,Linux下的默认编码是UTF-8不带BOM。
INI.7z
(1.36 KB, 下载次数: 8)
|
|