中国での golang の人気の高まりに伴い、ますます多くの初心者開発者がこの言語に触れ始め、実際にさまざまな問題に遭遇するようになりました。よくある問題の 1 つは、golang cmd での中国語の文字化けの問題です。
golang では、cmd コマンド ラインを使用したプログラムのコンパイルと実行は非常に一般的な操作です。ただし、操作中に、
- cmd コンソールに中国語の文字化けが表示され、出力結果が正しく表示されない、
- 他のプログラムを呼び出すと中国語が表示されるなどの問題が発生する可能性があります。文字が正しく送信できないパラメータ等
これらの問題については、以下に解決策を示します。
#コンソールのエンコードを設定する-
まず、cmd コンソールのエンコード方法を確認する必要があります。これは次の手順で設定できます。
cmd コンソールを開き、ウィンドウ タイトルを右クリックし、[プロパティ] -> [オプション] -> [ローカル オプション] を選択し、[中国語 (簡体字、中国)] または中国語をサポートするその他の言語を選択します。 [言語] ドロップダウン ボックスを選択し、[OK] をクリックします。
設定を確認したら、コンソール出力の正確性を確保するためにプログラムでエンコード方式を指定する必要があります。
サンプル コード:
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 エンコードに変換します。
他のプログラムを呼び出すには gbk 形式を使用します
他のプログラムを呼び出すときは、プログラムのエンコード方法がプログラムのエンコード方法と一致しているかどうかに注意する必要があります。コマンドコンソール。たとえば、OS を使用してコマンドを実行し、中国語のパラメータを渡す場合、正しい送信を保証するためにパラメータを 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 サイトの他の関連記事を参照してください。