golang println の文字化けコードを解決する方法

PHPz
リリース: 2023-04-27 10:09:08
オリジナル
906 人が閲覧しました

Golang は、高速で効率的なプログラミング言語として開発者に広く愛されています。ただし、golang の println 関数が文字化けを出力するなど、奇妙な問題に遭遇することがあります。この問題は通常、一貫性のない文字エンコーディングが原因で発生します。

Golang の文字列は UTF-8 でエンコードされ、println 関数はデフォルトで標準出力 (コンソール) を使用します。コンソールでは、通常、システムのデフォルトの文字エンコーディングが使用されます。 Windows システムでは、デフォルトの文字エンコーディングは GBK または GB2312 であり、UTF-8 エンコーディングと矛盾します。そのため、コンソールに文字列を出力すると文字化けが発生する場合があります。

この問題の解決策は、コンソールの文字エンコーディングを UTF-8 に設定することです。 Windows システムでは、次の手順に従ってセットアップできます。

  1. コマンド プロンプトを開きます

Windows システムでは、Win R ショートカット キーを使用して開くことができます。実行ウィンドウで「cmd」と入力し、Enter キーを押してコマンド プロンプトを開きます。

  1. 文字エンコーディングの設定

コマンド プロンプトで、chcp コマンドを使用して文字エンコーディングを設定できます。 「chcp 65001」と入力して Enter キーを押し、文字エンコーディングを UTF-8 に設定します。以下に示すように:

C:\> chcp 65001
ログイン後にコピー
  1. Golang プログラムを実行します

文字エンコーディングを設定した後、通常は UTF-8 でエンコードされた文字列をコンソールに出力できます。 Golang では、fmt パッケージの Println 関数を使用して文字列を出力できます。正しい出力を確保するには、コード内で出力ストリームの文字エンコーディングを UTF-8 として指定する必要があります。コード例は次のとおりです。

package main import ( "fmt" "os" ) func main() { f, err := os.OpenFile("log.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { fmt.Println(err) return } defer f.Close() fmt.Fprintf(f, "Hello, 世界") }
ログイン後にコピー
  1. プログラムをコンパイルして実行します

プログラムを作成した後、go build コマンドを使用してプログラムをコンパイルして実行する必要があります。生成された実行可能ファイル。コンソールで、次のコマンドを入力してコンパイルします。

C:\go\src\helloworld> go build
ログイン後にコピー

コンパイルが完了したら、プログラムを実行できます。コンソールで次のコマンドを入力して実行可能ファイルを実行します。

C:\go\src\helloworld> helloworld.exe
ログイン後にコピー

プログラムを実行すると、log.txt ファイルに「Hello, world」が正常に出力されていることがわかります。

まとめ

Golang では、コンソール出力が文字化けする問題が発生した場合、文字エンコーディングを設定することで解決できます。 Windows システムでは、chcp コマンドを使用して文字エンコーディングを UTF-8 に設定できます。プログラムでは、正しい出力を保証するために、出力ストリームの文字エンコーディングを UTF-8 として指定する必要があります。これにより、golangのprintln関数による出力文字化けの問題を簡単に解決でき、プログラムの可読性と保守性が向上します。

以上がgolang println の文字化けコードを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!