最近在用lua, 發現一個有點意思的槽點啊-____-! 那就是lua貌似會使用系統所用的字符集.
具體點說, 就是在windows上, 它會使用cp936來表示代碼中的中文.
來個例子:
print("中文")
把這句代碼寫到文本文件里, 保存的時候選擇UTF-8的話, 這時你運行代碼, 是會得到下面的中文亂碼的:
涓枃
但如果你把代碼存為ANSI格式, 那么就能得到正確的"中文"了.
所以在使用lua時, 如果代碼中含有中文的話, 請留意一下使用的環境.
ps:
為了驗證我的想法, 特意在cygwin環境下試了下. 我把環境設置為
此時, 如果運行代碼格式為UTF-8的lua代碼, 則可以正確輸出中文, 如果保存為ANSI格式的話, 則會輸出亂碼.
不過具體導致這個結果的原因, 可能就需要去瞅下lua的代碼了.