golang xorm Chinese garbled code
When using golang's ORM tool xorm, we often encounter the problem of Chinese garbled characters, which brings a lot of trouble to our development and debugging. This article will introduce some methods to solve the problem of Chinese garbled characters.
- Database character set setting
Before using xorm, you need to ensure that the character set of the database is set correctly. If the database's character set is set to utf8mb4, xorm will set the encoding to utf8 by default. This will lead to garbled Chinese characters or incomplete storage.
You can modify the database character set through the following sql statement:
ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- xorm field type setting
In xorm, you can specify the type of field. If the field type is set incorrectly, it will also cause Chinese garbled problems.
For example, if the type of a field is varchar(50), but the actual length that needs to be stored is greater than 50 characters, problems with Chinese garbled characters or truncation will occur.
When using xorm, you can set the field type through struct tag, for example:
type User struct { ID int64 `xorm:"pk autoincr bigint(20)"` Username string `xorm:"varchar(50) notnull"` Password string `xorm:"varchar(255) notnull"` }
- xorm saves Chinese data
When using xorm saves Chinese When reading data, you need to ensure that the data is encoded correctly. If the string encoding method is GBK or GB2312, and the database encoding method is utf8, the Chinese data will be garbled.
xorm sets the encoding to utf8 by default. If you need to save GBK or GB2312 encoded data, you can solve it by setting the connection string:
engine, err := xorm.NewEngine("mysql", "user:password@tcp(host:port)/db?charset=gbk")
- Use string escape
When using strings in SQL statements, you need to ensure that special characters in the string are escaped correctly. Otherwise, the SQL query will fail or produce unexpected results.
xorm uses ? placeholders instead of parameters, so manual escaping is not required. However, if you manually splice SQL statements, you need to use an escape function to ensure the correctness of the data:
escapedValue := mysql.EscapeString(originalValue)
The above are some methods to solve the problem of Chinese garbled characters in xorm, by correctly setting the character set, field type, character String encoding and escaping can avoid the problem of Chinese garbled characters in xorm and improve development efficiency and quality.
The above is the detailed content of golang xorm Chinese garbled code. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



OpenSSL, as an open source library widely used in secure communications, provides encryption algorithms, keys and certificate management functions. However, there are some known security vulnerabilities in its historical version, some of which are extremely harmful. This article will focus on common vulnerabilities and response measures for OpenSSL in Debian systems. DebianOpenSSL known vulnerabilities: OpenSSL has experienced several serious vulnerabilities, such as: Heart Bleeding Vulnerability (CVE-2014-0160): This vulnerability affects OpenSSL 1.0.1 to 1.0.1f and 1.0.2 to 1.0.2 beta versions. An attacker can use this vulnerability to unauthorized read sensitive information on the server, including encryption keys, etc.

The article explains how to use the pprof tool for analyzing Go performance, including enabling profiling, collecting data, and identifying common bottlenecks like CPU and memory issues.Character count: 159

The article discusses writing unit tests in Go, covering best practices, mocking techniques, and tools for efficient test management.

The library used for floating-point number operation in Go language introduces how to ensure the accuracy is...

Queue threading problem in Go crawler Colly explores the problem of using the Colly crawler library in Go language, developers often encounter problems with threads and request queues. �...

Backend learning path: The exploration journey from front-end to back-end As a back-end beginner who transforms from front-end development, you already have the foundation of nodejs,...

The article discusses managing Go module dependencies via go.mod, covering specification, updates, and conflict resolution. It emphasizes best practices like semantic versioning and regular updates.

The article discusses using table-driven tests in Go, a method that uses a table of test cases to test functions with multiple inputs and outcomes. It highlights benefits like improved readability, reduced duplication, scalability, consistency, and a
