Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk menyelesaikan kod golang mysql

Bagaimana untuk menyelesaikan kod golang mysql

PHPz
Lepaskan: 2023-04-03 09:52:13
asal
1014 orang telah melayarinya

Golang ialah bahasa pengaturcaraan sumber terbuka. Kemunculannya telah memberi ramai pengaturcara pilihan lain. MySQL ialah sistem pengurusan pangkalan data hubungan yang terkenal, dan ramai pengaturcara Golang menggunakan MySQL sebagai penyelesaian penyimpanan data. Walau bagaimanapun, disebabkan perbezaan set aksara dan aspek lain, ramai pembangun akan menghadapi masalah aksara bercelaru apabila Golang berinteraksi dengan MySQL.

Jadi, bagaimana untuk menyelesaikan masalah aksara bercelaru apabila Golang berinteraksi dengan MySQL? Berikut adalah beberapa penyelesaian yang mungkin.

1. Tetapkan set aksara

Set aksara lalai pangkalan data MySQL ialah utf8mb4, manakala set aksara lalai Golang ialah utf8. Apabila set aksara pada kedua-dua belah pihak tidak konsisten, aksara bercelaru akan muncul. Oleh itu, kita boleh menentukan set aksara menjadi utf8mb4 apabila menyambung ke MySQL, seperti berikut:

db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database?charset=utf8mb4")
Salin selepas log masuk

Ini memastikan Golang dan MySQL menggunakan set aksara yang sama. Perlu diingatkan bahawa set aksara juga perlu ditetapkan kepada utf8mb4 semasa membuat pangkalan data.

2. Gunakan nilai lalai set aksara utf8mb4

Nilai lalai set aksara utf8mb4 ialah utf8mb4_general_ci, bukan utf8mb4_bin. Apabila kami tidak menentukan set aksara atau menggunakan set aksara lalai semasa mencipta jadual atau medan, MySQL akan menggunakan utf8mb4_general_ci sebagai nilai lalai. utf8mb4_general_ci ialah kaedah perbandingan berdasarkan set aksara Unicode Ia tidak sensitif huruf besar dan tidak sensitif, menjadikannya lebih mudah semasa memproses data teks.

Oleh itu, kita boleh menggunakan nilai lalai secara langsung tanpa menyatakan set aksara semasa membuat jadual atau medan untuk mengelakkan aksara bercelaru. Seperti yang ditunjukkan di bawah:

CREATE TABLE user (
  name varchar(50) NOT NULL,
  age int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Salin selepas log masuk

3 Gunakan fungsi penukaran set aksara

Apabila kita menggunakan set aksara yang berbeza, kita boleh menggunakan fungsi penukaran set aksara yang disediakan oleh MySQL untuk menukar teks dalam yang berbeza. set aksara Buat penukaran. Antaranya, fungsi yang paling biasa digunakan ialah CONVERT() dan CAST().

  • Fungsi CONVERT() boleh menukar rentetan daripada satu set aksara kepada yang lain Sintaksnya adalah seperti berikut:
CONVERT(str USING charset)
Salin selepas log masuk

di mana, str ialah The string to be. ditukar, charset ialah set aksara sasaran.

Sebagai contoh, untuk menukar rentetan dalam set aksara utf8 kepada rentetan dalam set aksara gbk, anda boleh menggunakan pernyataan berikut:

SELECT CONVERT('你好',CHARACTER SET gbk);
Salin selepas log masuk
  • CAST() fungsi juga boleh menukar aksara Untuk menukar rentetan daripada satu set aksara kepada yang lain, sintaksnya adalah seperti berikut:
CAST(str AS character_type CHARACTER SET charset)
Salin selepas log masuk

Antaranya, str ialah rentetan yang hendak ditukar, character_type ialah sasaran jenis data, dan set aksara ialah set aksara sasaran .

Sebagai contoh, untuk menukar nama medan set aksara utf8 jenis varchar kepada medan set aksara gbk, anda boleh menggunakan pernyataan berikut:

SELECT CAST(name AS char(20) CHARACTER SET gb2312) FROM user;
Salin selepas log masuk

Dengan menggunakan aksara tetapkan fungsi penukaran, kita boleh Menyelesaikan masalah bercelaru apabila Golang berinteraksi dengan MySQL.

Di atas adalah beberapa cara yang mungkin untuk menyelesaikan masalah bercelaru apabila Golang berinteraksi dengan MySQL Dalam pembangunan sebenar, anda perlu memilih penyelesaian yang sesuai mengikut situasi tertentu. Saya harap artikel ini dapat membantu pengaturcara Golang menyelesaikan masalah watak bercelaru.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kod golang mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan