因此golang被設計為正確處理unicode / utf-8。但是,我似乎無法在終端的標準輸出中正確打印出utf-8字符。最簡單的程序在這里:package mainimport "fmt"func main() { fmt.Println("Hello, 世界")}執行時,顯示編碼的字符。$ go run hello.goHello, ‰∏?á??我的終端的語言環境設置正確:$ localeLANG="en_US.UTF-8"LC_COLLATE="en_US.UTF-8"LC_CTYPE="en_US.UTF-8"LC_MESSAGES="en_US.UTF-8"LC_MONETARY="en_US.UTF-8"LC_NUMERIC="en_US.UTF-8"LC_TIME="en_US.UTF-8"LC_ALL="en_US.UTF-8"我正在使用vimset encoding=utf-8并將其set fileencodings=utf-8包含在我的.vimrc文件中。這實際上可能是一個vim問題。我曾經nano從頭開始編寫此腳本并命名,hello2.go然后打印輸出實際上可以Hello, 世界正確打印。但是用hello.go創建的原始腳本vim只會給我帶來混亂Hello, ‰∏?á??。因此,只需仔細檢查一下我的vim創建的hello.go腳本是否為UTF-8 Unicode文本,即可file在其上運行命令。像這樣:-$ file hello.gohello.go: C source, UTF-8 Unicode text那有什么呢?為什么我hello.go上面的vim創建的腳本打印出亂碼,而我的nano創建的hello2.go(包含相同的確切代碼行)卻不打印出來?$ file hello2.gohello2.go: C source, UTF-8 Unicode text實際上,當我打開用創建的vim-createhello.go時nano,源代碼現在顯示為:package mainimport "fmt"func main() { fmt.Println("Hello ‰∏?á??")}但是,如果我打開同一個VIM創建hello.go有vim,源代碼如下: -package mainimport "fmt"func main() { fmt.Println("Hello, 世界")}為什么會這樣呢?
2 回答

萬千封印
TA貢獻1891條經驗 獲得超3個贊
該問題最有可能與Windows“命令提示符”(控制臺)工具屬性中使用的字體有關。
單擊左上角的菜單圖標,選擇“屬性”,然后選擇“字體”選項卡。在Windows 8.1機器上,默認值為“光柵字體”,并且出現問號????? 而不是Unicode字符,而是通過Go Lang程序中的UTF8進行編碼。
解決方案是選擇TrueType字體之一“ Consolas”或“ Lucida Console”
- 2 回答
- 0 關注
- 355 瀏覽
添加回答
舉報
0/150
提交
取消