ホームページ  >  記事  >  バックエンド開発  >  Go ドライバーを使用して挿入するときの MySQL エンコードの問題

Go ドライバーを使用して挿入するときの MySQL エンコードの問題

WBOY
WBOY転載
2024-02-09 16:00:10552ブラウズ

Go ドライバーを使用して挿入するときの MySQL エンコードの問題

php Xiaobian Yuzai は、Go ドライバーを使用して挿入する場合の MySQL コーディングの問題の解決策を提供します。 Go を使用して MySQL 挿入操作を作成すると、コーディングの不整合が発生し、データの挿入が文字化けしたり、挿入に失敗したりすることがあります。この記事では、この問題を解決し、データ挿入操作をよりスムーズにする方法を詳しく紹介します。

質問内容

utf-8テキストをlatin1_swedish_ciとしてエンコードされたテーブルに保存しようとしています。データベースに直接アクセスできないため、エンコードを変更できません。そこで、エンコーダーを提供するこの go ライブラリを使用してテキストを latin-1 にエンコードしようとしています。このライブラリには、エラーを返す代わりに無効な文字を置き換えるようにエンコーダーをラップする関数があります。

しかし、行を挿入しようとすると、mysql は エラー 1366: 行 1 列 "説明" の文字列値が正しくありません: "\\xe7\\xe3o pa..." というメッセージを表示します。

同じテキストをファイルに書き込もうとしたところ、file -i によって file.txt: application/octet-stream;charset=binary が報告されました。

###例### リーリー

非常に明白な何かが欠けている可能性がありますが、コーディングについてはほとんど知りません。

###前もって感謝します。

解決策

çã

を期待していますか?

問題は簡単に解決できます。 inserting

テキストを実行すると、mysql は latin1 から utf8 に問題なく変換します。ただし、クライアントが latin1 を使用していることを伝える必要があります。これは、mysql への接続中に実行される可能性があります。現在、デフォルトは utf8、utf-8、または utf8mb4 に設定されています。少し似ている### リーリー

以上がGo ドライバーを使用して挿入するときの MySQL エンコードの問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。