中国での golang の人気の高まりに伴い、ますます多くの初心者開発者がこの言語に触れ始め、実際にさまざまな問題に遭遇するようになりました。よくある問題の 1 つは、golang cmd での中国語の文字化けの問題です。
golang では、cmd コマンド ラインを使用したプログラムのコンパイルと実行は非常に一般的な操作です。ただし、操作中に、
これらの問題については、以下に解決策を示します。
package main import ( "fmt" "os" "github.com/axgle/mahonia" ) func main() { // 创建一个utf8编码的文本 s := "中文" // 定义一个gbk编码器 dec := mahonia.NewEncoder("gbk") // 将utf8编码的文本转换成gbk编码 result := dec.ConvertString(s) // 输出到控制台 fmt.Println(result) // 将gbk编码的文本写入文件 file, _ := os.Create("test.txt") defer file.Close() file.WriteString(result) }上記のコードでは、出力が正しいことを確認するために、mahonia ライブラリを使用して utf8 でエンコードされたテキスト (golang のデフォルト エンコード) を gbk エンコードに変換します。
package main import ( "os" "github.com/axgle/mahonia" ) func main() { // 定义一个gbk编码器 dec := mahonia.NewEncoder("gbk") // 将utf8编码的文本转换成gbk编码 cmdStr := dec.ConvertString("notepad 中文.txt") // 执行命令 cmd := exec.Command("cmd.exe", "/c", cmdStr) cmd.Run() }上記のコードでは、mahonia ライブラリを使用してコマンド パラメーターを utf8 エンコーディングから gbk エンコーディングに変換し、os を介して cmd.exe を呼び出してコマンドを実行します。 , これにより、中国語のパラメータが正しく渡されるようになります。 要約: 上記の2つの方法により、golang cmdにおける中国語の文字化けの問題を解決できます。実際の開発では、自分のニーズに応じて問題を解決するための適切な方法を選択する必要があります。 同時に、この問題を golang 公式に積極的にフィードバックし、将来のアップグレードでより良い解決策が得られることを期待します。
以上がgolang cmdのコードが文字化けするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。