Rumah  >  Artikel  >  pembangunan bahagian belakang  >  golang xorm Chinese chabled code

golang xorm Chinese chabled code

WBOY
WBOYasal
2023-05-10 11:56:06739semak imbas

Apabila menggunakan xorm alat ORM golang, kami sering menghadapi masalah aksara Cina yang bercelaru, yang membawa banyak masalah kepada pembangunan dan penyahpepijatan kami. Artikel ini akan memperkenalkan beberapa kaedah untuk menyelesaikan masalah aksara Cina yang kacau.

  1. Tetapan set aksara pangkalan data

Sebelum menggunakan xorm, anda perlu memastikan set aksara pangkalan data ditetapkan dengan betul. Jika set aksara pangkalan data ditetapkan kepada utf8mb4, xorm akan menetapkan pengekodan kepada utf8 secara lalai. Ini akan membawa kepada aksara Cina yang bercelaru atau storan yang tidak lengkap.

Anda boleh mengubah suai set aksara pangkalan data melalui pernyataan sql berikut:

ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. tetapan jenis medan xorm

Dalam xorm, anda boleh menentukan jenis bidang. Jika jenis medan ditetapkan dengan tidak betul, ia juga akan menyebabkan masalah bercelaru bahasa Cina.

Contohnya, jika jenis medan ialah varchar(50), tetapi panjang sebenar yang perlu disimpan adalah lebih daripada 50 aksara, masalah dengan aksara Cina yang bercelaru atau pemotongan akan berlaku.

Apabila menggunakan xorm, anda boleh menetapkan jenis medan melalui tag struct, contohnya:

type User struct {
    ID       int64  `xorm:"pk autoincr bigint(20)"`
    Username string `xorm:"varchar(50) notnull"`
    Password string `xorm:"varchar(255) notnull"`
}
  1. xorm untuk menyimpan data Cina

Apabila menggunakan xorm untuk menyimpan Bahasa Cina Semasa membaca data, anda perlu memastikan bahawa data dikodkan dengan betul. Jika kaedah pengekodan rentetan ialah GBK atau GB2312, dan kaedah pengekodan pangkalan data ialah utf8, data Cina akan bercelaru.

xorm menetapkan pengekodan kepada utf8 secara lalai Jika anda perlu menyimpan data yang dikodkan GBK atau GB2312, anda boleh menyelesaikannya dengan menetapkan rentetan sambungan:

engine, err := xorm.NewEngine("mysql", "user:password@tcp(host:port)/db?charset=gbk")
  1. Gunakan string escape<.>
Apabila menggunakan rentetan dalam pernyataan SQL, anda perlu memastikan bahawa aksara khas dalam rentetan dilepaskan dengan betul. Jika tidak, pertanyaan SQL akan gagal atau menghasilkan hasil yang tidak dijangka.

xorm menggunakan ruang letak dan bukannya parameter, jadi tiada pelarian manual diperlukan. Walau bagaimanapun, jika anda menyambung penyataan SQL secara manual, anda perlu menggunakan fungsi escape untuk memastikan ketepatan data:

escapedValue := mysql.EscapeString(originalValue)

Di atas adalah beberapa kaedah untuk menyelesaikan masalah aksara Cina yang kacau dalam xorm, dengan menetapkan dengan betul set aksara, jenis medan dan watak Pengekodan rentetan dan melarikan diri boleh mengelakkan masalah aksara Cina bercelaru dalam xorm dan meningkatkan kecekapan dan kualiti pembangunan.

Atas ialah kandungan terperinci golang xorm Chinese chabled code. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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