Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encoding 什么';“的定义是什么;编码不可知论;?_Encoding_Lua - Fatal编程技术网

Encoding 什么';“的定义是什么;编码不可知论;?

Encoding 什么';“的定义是什么;编码不可知论;?,encoding,lua,Encoding,Lua,在lua 5.3参考手册中,我们可以看到: Lua也是编码不可知论者;它对字符串的内容不做任何假设 我不明白这句话是怎么说的。一个字符串中的相同字节值可能代表不同的字符,具体取决于该字符串所使用的字符。例如,相同的值\177可能表示▒或编码中的± Lua不假设给定字符串的编码是什么,需要在脚本级别解决歧义;换句话说,您的脚本需要知道是否将字节序列处理为Windows 1252、code page 437、UTF-8,或其他编码字符串。本质上,Lua字符串是一个已计数的字节序列。如果将Lua字符串

在lua 5.3参考手册中,我们可以看到:

Lua也是编码不可知论者;它对字符串的内容不做任何假设


我不明白这句话是怎么说的。

一个字符串中的相同字节值可能代表不同的字符,具体取决于该字符串所使用的字符。例如,相同的值
\177
可能表示
或编码中的
±


Lua不假设给定字符串的编码是什么,需要在脚本级别解决歧义;换句话说,您的脚本需要知道是否将字节序列处理为
Windows 1252
code page 437
UTF-8
,或其他编码字符串。

本质上,Lua字符串是一个已计数的字节序列。如果将Lua字符串用于二进制数据,则字符编码的概念不相关,也不会干扰二进制数据。这样一来,字符串编码就不可知了

标准字符串库中有一些函数将字符串值视为未计数的字符序列的文本。没有文本,只有编码文本。编码将字符集的成员映射到字节序列。字符串将具有零个或多个此类编码字符的字节。要将字符串理解为文本,必须知道字符集和编码。要使用字符串函数,编码应与
os.setlocale()
兼容