我讀的東西aboue字符串有: http://www.lua.org/pil/2.4.html爲什麼Lua的字符串可以包含任何數值的字符?
Lua是八位乾淨等字符串可能包含的字符與任何數值,包括嵌入式零。
那是什麼八位清零是什麼意思?
爲什麼它可以包含任何數值的字符? (基本的C字符串不同)
我讀的東西aboue字符串有: http://www.lua.org/pil/2.4.html爲什麼Lua的字符串可以包含任何數值的字符?
Lua是八位乾淨等字符串可能包含的字符與任何數值,包括嵌入式零。
那是什麼八位清零是什麼意思?
爲什麼它可以包含任何數值的字符? (基本的C字符串不同)
有兩種常見的方法來存儲字符串:
當您使用#1,您需要「犧牲」一個字符作爲終結者;當你使用#2時,你沒有這樣的限制。
C使用第一種存儲字符串的方法。它使用字符零作爲終結者;其他255個字符可用於表示字符串的字符。
Lua使用第二種存儲字符串的方法。所有256個可能的字符值,包括零,都可以在Lua字符串中使用。例如,您可以從字符'A'
,0
,'B'
構造一個三字符字符串,而Lua會將其視爲三個字符的字符串。您可以在C中構造相同的字符串,但其字符串處理庫會將其視爲單字符字符串:strlen
將返回1
,puts
將寫入字符A
並停止,依此類推。
我看到了,就像ngx_str_t。 – ZIFF
Lua字符串類型是一個計數的字節序列。一個字節可以保存0到255之間的任何值。
字符串類型用於字符串。你是對的,很少字符集編碼允許任何字節值或字節值序列。代碼頁437是這樣做的;它將256個字符映射到256個值,每個字符一個字節。 Windows-1252不會;它將251個字符映射到251個值,每個字符一個字節。 UTF-8將1,112,064個字符映射到1到4個字節的序列,其中不使用某些字節值,並且不使用某些值序列。
Lua字符串庫確實具有將字節視爲字符的函數。它們的行爲受實現的庫的影響,這些庫通常使用C運行時及其語言環境特性。
有專門的庫可供Lua明確處理各種字符集編碼。
1. http://en.wikipedia.org/wiki/String_(computer_science)2. http://en.wikipedia.org/wiki/8-bit_clean – mawburn
請不要猶豫,使用您的搜索引擎選擇尋找簡單問題的詳細答案。 – 2012-06-02 02:44:08
_C_字符可以包含任何數值。 –