lua在控制台運行時的亂碼問題


參考博客:
維1
艱苦奮斗中

1、編碼方式介紹:

  1. ASCII
    ASCII碼可以表示所有的英語字符(字母、數字、標點符號等)。ASCII碼是7位編碼(0-127),但由於計算機基本處理單位為字節(1字節=8位),所以一個ASCII字符占一個字節

  2. Unicode
    因為一個ASCII字符只能表示256個字符,顯然是存在着局限的(如不能用來表示中文)。而且不同的語言有不同的字符,為了讓世界上所有的字符都有一個唯一的編碼值(如果一個編碼值對應多個字符,就會出現歧義),就出現了Unicode碼。Unicode碼可以容納100多萬個符號,每個符號的編碼都不一樣。但是Unicode碼的缺點是效率不高,比如UCS-4(Unicode的標准之一)規定用4個字節存儲一個符號,那么每個英文字母前都必然有三個字節是0,原本只需1個字節現在卻用了4個字節,這對存儲和傳輸來說都很耗資源。

  3. GBK編碼
    GBK編碼是國內自己設計的,GBK中一個漢字占2個字節。,國內window電腦下cmd的默認編碼就是GBK。
    但是如果外國人用的時候,就會出現亂碼情況。

  4. UTF-8
    為了提高Unicode的編碼效率,於是就出現了UTF-8編碼。UTF-8可以根據不同的符號自動選擇編碼的長短。在UTF-8中,一個英文占1個字節,一個中文占3個字節
    外國人用也不會出現亂碼,這是西方人為了多字節字符形成的解決方案。
    程序開發中一般我們使用的默認編碼就是UTF-8

2、lua在控制台輸出時出現亂碼問題

國內window cmd下默認編碼時GBK,而寫lua腳本時使用的默認編碼是UTF8,所以就出現了亂碼問題。

  • 解決方法1:修改lua文件的編碼方式為GBK。
    如果使用的是VSCode,在右下角處可以點擊選擇要保存的編碼方式。


或者直接在我的電腦里面選擇lua文件,右鍵-另存為-選擇編碼方式。

  • 解決方法2:臨時修改控制台編碼
    在控制台界面輸入chcp 65001,則可以把當前界面暫時改成UTF-8編碼,退出則失效。

  • 解決方法3:永久修改控制台編碼
    比較麻煩,並且也沒太大必要,詳細可以看大佬博客。
    https://blog.csdn.net/gulang03/article/details/81771343


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM