Table of Contents
- 12.1 Character Sets and Collations in General
- 12.2 Character Sets and Collations in MySQL
- 12.3 Specifying Character Sets and Collations
- 12.3.1 Collation Naming Conventions
- 12.3.2 Server Character Set and Collation
- 12.3.3 Database Character Set and Collation
- 12.3.4 Table Character Set and Collation
- 12.3.5 Column Character Set and Collation
- 12.3.6 Character String Literal Character Set and Collation
- 12.3.7 The National Character Set
- 12.3.8 Character Set Introducers
- 12.3.9 Examples of Character Set and Collation Assignment
- 12.3.10 Compatibility with Other DBMSs
- 12.4 Connection Character Sets and Collations
- 12.5 Configuring Application Character Set and Collation
- 12.6 Error Message Character Set
- 12.7 Column Character Set Conversion
- 12.8 Collation Issues
- 12.8.1 Using COLLATE in SQL Statements
- 12.8.2 COLLATE Clause Precedence
- 12.8.3 Character Set and Collation Compatibility
- 12.8.4 Collation Coercibility in Expressions
- 12.8.5 The binary Collation Compared to _bin Collations
- 12.8.6 Examples of the Effect of Collation
- 12.8.7 Using Collation in INFORMATION_SCHEMA Searches
- 12.9 Unicode Support
- 12.9.1 The utf8mb4 Character Set (4-Byte UTF-8 Unicode Encoding)
- 12.9.2 The utf8mb3 Character Set (3-Byte UTF-8 Unicode Encoding)
- 12.9.3 The utf8 Character Set (Deprecated alias for utf8mb3)
- 12.9.4 The ucs2 Character Set (UCS-2 Unicode Encoding)
- 12.9.5 The utf16 Character Set (UTF-16 Unicode Encoding)
- 12.9.6 The utf16le Character Set (UTF-16LE Unicode Encoding)
- 12.9.7 The utf32 Character Set (UTF-32 Unicode Encoding)
- 12.9.8 Converting Between 3-Byte and 4-Byte Unicode Character Sets
- 12.10 Supported Character Sets and Collations
- 12.11 Restrictions on Character Sets
- 12.12 Setting the Error Message Language
- 12.13 Adding a Character Set
- 12.14 Adding a Collation to a Character Set
- 12.15 Character Set Configuration
- 12.16 MySQL Server Locale Support
MySQL includes character set support that enables you to store data
using a variety of character sets and perform comparisons according
to a variety of collations. The default MySQL server character set
and collation are utf8mb4
and
utf8mb4_0900_ai_ci
, but you can specify character
sets at the server, database, table, column, and string literal
levels. To maximize interoperability and future-proofing of your
data and applications, we recommend that you use the
utf8mb4
character set whenever possible.
UTF8
is a deprecated synonym for
utf8mb3
, and you should expect it to be removed
in a future version of MySQL. Specify utfmb3
or
(preferably) utfmb4
instead.
This chapter discusses the following topics:
What are character sets and collations?
The multiple-level default system for character set assignment.
Syntax for specifying character sets and collations.
Affected functions and operations.
Unicode support.
The character sets and collations that are available, with notes.
Selecting the language for error messages.
Selecting the locale for day and month names.
Character set issues affect not only data storage, but also
communication between client programs and the MySQL server. If you
want the client program to communicate with the server using a
character set different from the default, you need to indicate which
one. For example, to use the latin1
Unicode
character set, issue this statement after connecting to the server:
SET NAMES 'latin1';
For more information about configuring character sets for application use and character set-related issues in client/server communication, see Section 12.5, “Configuring Application Character Set and Collation”, and Section 12.4, “Connection Character Sets and Collations”.