문자 세트 개요
문자 세트는 Oracle 데이터베이스에서든 MySQL 데이터베이스에서든 문자 세트 선택 문제가 있으며, 데이터베이스 중에 문자 세트가 올바르게 선택되지 않은 경우에는 기호 및 인코딩 규칙의 집합입니다. 이후 단계에서 문자 세트를 변경해야 할 수도 있으며, 문자 세트를 변경하는 작업은 상대적으로 비용이 많이 들고 특정 위험이 있으므로 필요에 따라 적절한 문자 세트를 올바르게 선택하는 것이 좋습니다. 나중에 불필요한 오류를 피하기 위해 응용 프로그램 시작 부분에.
4.2 Mysql에서 지원하는 문자 집합 소개
Mysql 서버는 동일한 서버, 동일한 데이터베이스 또는 여러 문자 집합을 지원할 수 있습니다(show char set 명령을 사용하여 mysql에서 지원하는 모든 문자 집합을 볼 수 있음). 동일한 테이블이라도 서로 다른 문자 집합을 사용하도록 서로 다른 필드를 지정할 수 있습니다. 동일한 데이터베이스에서 동일한 문자 집합만 사용할 수 있는 Oracle과 같은 다른 데이터베이스 관리 시스템과 비교할 때 MySQL은 분명히 더 큰 유연성을 가지고 있습니다.
mysql의 문자 집합에는 문자 집합(CHARACTER)과 교정 규칙(COLLATION)이라는 두 가지 개념이 포함됩니다. 문자 집합은 MySQL이 문자열을 저장하는 방식을 정의하는 데 사용되며 대조 규칙은 문자열을 비교하는 방법을 정의합니다. 문자 집합과 대조 규칙 사이에는 일대다 관계가 있습니다. MySQL은 30개 이상의 문자 집합에서 70개 이상의 대조 규칙을 지원합니다.
각 문자 집합은 하나 이상의 조합 규칙에 해당합니다. SHOW COLLATION LIKE 'utf8%' 명령을 사용하여 관련 문자 집합의 대조 규칙을 볼 수 있습니다.
4.3 유니코드에 대한 간략한 소개
유니코드는 인코딩 사양입니다. 여기서는 유니코드 인코딩의 역사를 간략하게 설명합니다.
먼저 ASCII 코드도 코딩 표준입니다. 그러나 ASCII 코드는 최대 256자까지만 생성됩니다. 중국어, 아랍어 등 복잡한 텍스트의 경우 256자입니다. 분명히 충분하지 않습니다. 따라서 다양한 국가나 조직에서는 gb2312, big5 등과 같이 자국의 언어와 문자에 맞는 표준을 연속적으로 제정해 왔습니다. 그러나 자체 표준을 설정하는 이러한 접근 방식에는 분명히 많은 단점이 있으므로 유니코드 인코딩 사양이 탄생했습니다.
유니코드도 문자 인코딩 방식이지만 국제 기구에서 설계한 것이며 전 세계 모든 언어의 인코딩 방식을 수용할 수 있습니다. 유니코드의 학명은 "Universal Multiple-Octet Coded Character Set", 줄여서 UCS입니다. UCS는 "Unicode Character Set"의 약자로 볼 수 있습니다.
유니코드에는 UCS-2와 UCS-4의 두 가지 표준이 있습니다. 전자는 2바이트를 사용하여 문자를 나타내고 후자는 4개의 단어를 사용하여 문자를 나타냅니다. 현재 일반적으로 사용되는 UCS-2를 예로 들면 표현할 수 있는 문자 수는 2^16=65535로 기본적으로 유럽, 미국 문자는 모두 수용할 수 있으며 대부분의 아시아 문자도 수용할 수 있다.
4.4 적합한 문자 집합을 선택하는 방법
애플리케이션을 완전히 만족시킬 수 있는 한 작은 문자 집합을 사용하는 것이 좋습니다. 문자 집합이 작을수록 공간을 절약하고 네트워크에서 전송하는 바이트 수를 줄일 수 있다는 의미이기 때문에 동시에 저장 공간이 작을수록 시스템 성능이 간접적으로 향상됩니다
.
한자를 저장할 수 있는 문자 집합에는 utf8, gb2312, gbk, latin1 등 여러 가지가 있지만 일반적으로 많이 사용되는 것은 gb2312, gbk입니다. gb2312 글꼴 라이브러리는 gbk 글꼴 라이브러리보다 작기 때문에 일부 희귀 문자(예: 洺)를 저장할 수 없습니다. 따라서 문자 세트를 선택할 때 이러한 원격 문자가 애플리케이션에 미칠 가능성과 영향을 고려해야 합니다. 긍정적인 답변을 드릴 수 없습니다. gbk를 선택하는 것이 가장 좋습니다.
4.5 Mysql 문자 집합 설정
Mysql의 문자 집합 및 대조 규칙에는 서버 수준, 데이터베이스 수준, 테이블 수준 및 필드 수준의 4가지 기본 설정 수준이 있습니다. 그들은 다른 장소에 설치되어 있으며 다른 기능을 가지고 있습니다.
서버 문자셋과 콜레이션은 mysql 서비스가 시작될 때 결정됩니다.
my.cnf에서 설정 가능:
[mysqld]
default-character-set=utf8
또는 시작 옵션에서 지정 가능:
mysqld --default-character-set=utf8
또는 컴파일 중에 지정:
./configure --with-charset=utf8
서버 문자 집합을 특별히 지정하지 않으면 기본적으로 latin1이 서버 문자 집합으로 사용됩니다. 위의 세 가지 설정은 문자 집합만 지정하고 대조 규칙을 지정하지 않습니다. 이러한 방식으로 문자 집합의 기본 대조 규칙이 아닌 것을 사용하려면 다음이 필요합니다. 교정 규칙을 동시에 지정합니다.
'character_set_server'와 같은 표시 변수를 사용하여 현재 서버의 문자 집합 및 대조 규칙을 쿼리할 수 있습니다.
더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!