>백엔드 개발 >PHP 튜토리얼 >MySQL 중국어 왜곡 코드, phpmyadmin 왜곡 코드, php 왜곡 코드의 원인과 해결 방법을 요약합니다. 1/3페이지

MySQL 중국어 왜곡 코드, phpmyadmin 왜곡 코드, php 왜곡 코드의 원인과 해결 방법을 요약합니다. 1/3페이지

WBOY
WBOY원래의
2016-07-29 08:37:07913검색

문자가 왜곡되는 이유
MySQL 문자 인코딩은 버전 4.1에서 도입되었으며 여러 언어를 지원하며 일부 기능은 다른 데이터베이스 시스템을 능가합니다.
我们可以在MySQL Command Line Client 下输入如下命令查看mysql的字符集
mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     | 2      |
| dec8     | DEC West European           | dec8_swedish_ci     | 1      |
| cp850    | DOS West European           | cp850_general_ci    | 1      |
| hp8      | HP West European            | hp8_english_ci      | 1      |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    | 1      |
| latin1   | cp1252 West European        | latin1_swedish_ci   | 1      |
| latin2   | ISO 8859-2 Central European | latin2_general_ci   | 1      |
| swe7     | 7bit Swedish                | swe7_swedish_ci     | 1      |
| ascii    | US ASCII                    | ascii_general_ci    | 1      |
| ujis     | EUC-JP Japanese             | ujis_japanese_ci    | 3      |
| sjis     | Shift-JIS Japanese          | sjis_japanese_ci    | 2      |
| hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   | 1      |
| tis620   | TIS620 Thai                 | tis620_thai_ci      | 1      |
| euckr    | EUC-KR Korean               | euckr_korean_ci     | 2      |
| koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    | 1      |
| gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   | 2      |
| greek    | ISO 8859-7 Greek            | greek_general_ci    | 1      |
| cp1250   | Windows Central European    | cp1250_general_ci   | 1      |
| gbk      | GBK Simplified Chinese      | gbk_chinese_ci      | 2      |
| 라틴5  | ISO 8859-9 터키어        | latin5_turkish_in   | 1           |
| armcii8 | ARMSCII-8 아르메니아어         | armcii8_general_ci | 1           |
| utf8     | UTF-8 유니코드             | utf8_general_ci     | 3      |
| ucs2     | UCS-2 유니코드             | ucs2_general_ci     | |
| cp866   | DOS 러시아어              | cp866_general_ci    | 1           |
| 키bcs2 | DOS Kamenicky 체코슬로바키아어 | keybcs2_general_ci  | 1           |
| 자리 | Mac 중앙 유럽        | General_defects_in    | 1           |
| 매크로맨 | Mac West 유럽어          | Macroman_general_ci | 1           |
| cp852   | DOS 중앙 유럽어        | cp852_general_ci    | 1           |
| latin7  | ISO 8859-13 발트어         | latin7_general_ci   | 1           |
| cp1251  | Windows 키릴 문자          | cp1251_general_ci   | 1           |
| cp1256  | Windows 아랍어            | cp1256_general_ci   | 1           |
| cp1257  | Windows 발트어            | cp1257_general_ci   | 1           |
| 바이너리   | 바이너리 의사 문자 집합      | 바이너리              | 1           |
| geostd8  | GEOSTD8 그루지야어          | geostd8_general_ci  | 1           |
| cp932   | Windows용 SJIS 일본어  | cp932_japanese_in   | |
| eucjpms | Windows용 UJIS 일본어  | eucjpms_일본어_인 | 3      |
------------------ --- ------------------
세트 36개(0.02초)
Mysql 버튼을 클릭하세요. http://www.phpfans.net/bbs/ viewt … &extra=page=1
새로운 mysql 방식
http://dev.mysql.com/doc/refman/5.1/zh/charset .html
MySQL 4.1 문자 세트 지원은 다음 위치에서 제공됩니다. 문자 집합 지원 또는 Facebook 페이지 웹사이트 위치: 홈(서버) 생성(데이터베이스), 생성(테이블) 생성(연결)。
시스템의 문자 집합과 정렬 설정을 보려면 다음 두 명령을 사용할 수 있습니다.
mysql> SHOW VARIABLES LIKE 'character_set_%'; --------------- -------- - ------
| 변수 이름                                                --------------------------------------
| 문자 집합_클라이언트 | 라틴1 | 문자 집합_연결 | 라틴1                                                ~
------------- ------ --------- ---------------
8행 세트(0.06초)
mysql> 'collation_%'와 같은 변수 표시
---------- ------------- -----
| 변수명
---------- ----------- --------
| collation_connection | latin1_swedish_ci |
------------ -------- --- ---
3행 세트(0.02초)
위에 나열된 값은 시스템 기본값. latin1의 기본 대조 규칙은 latin1_swedish_ci인데, 이는 latin1의 스웨덴어 정렬 방법입니다.
기본 대조 규칙이 latin1_swedish_ci인 이유는 mysql의 역사를 추적해 보면 쉽게 알 수 있습니다.
1979년 스웨덴 Tcx 회사는 신속한 다중 스레드, 다중 사용자 데이터베이스 시스템을 개발하고 싶었습니다. Tcx는 처음에 mSQL과 자체적인 빠른 저수준 루틴(ISAM)을 사용하여 데이터베이스 테이블에 연결하기를 원했습니다. 그러나 몇 가지 테스트를 거친 후 mSQL이 필요에 따라 충분히 빠르고 유연하지 않다는 결론을 내렸습니다. 이로 인해 mSQL과 거의 동일한 API 인터페이스를 사용하는 커넥터 데이터베이스에 대한 새로운 SQL 인터페이스가 탄생했습니다. 이 API는 mSQL용으로 작성된 타사 코드를 MySQL로 쉽게 포팅할 수 있도록 설계되었습니다.
mysql이 중국에서 개발되었다면 중국어도 기본적으로 인코딩될 것이라고 생각합니다.
물론 mysql의 기본 문자 집합을 직접 수정할 수도 있습니다.
mysql 구성 문서 my.ini에서, 다음 두 문장을 찾으세요:
[mysql]
default-character-set=latin1

#이 생성되었으며 문자 집합이 정의되지 않았습니다.
default-character-set=latin1
다음 값을 수정하면 됩니다.
여기서 변경하는 것은 권장되지 않으며 기본값은 그대로 유지됩니다.
즉, mysql을 시작할 때 기본 문자 집합을 지정하지 않으면 이 값은 구성 파일에서 상속됩니다. 🎜>이때 Character_set_server는 이 기본 문자 집합으로 설정되며,
명시적으로 지정하지 않는 한 데이터베이스 선택 시 이 데이터베이스의 문자 집합이 기본으로 설정됩니다.
character_set_database가 이 데이터베이스의 기본 문자 집합으로 설정됩니다.
테이블의 기본 문자 집합이 이 데이터베이스의 기본 문자 집합인 Character_set_database로 설정됩니다. 🎜>테이블에 설정한 경우 컬럼을 지정할 때 명시적으로 지정하지 않는 한 이 컬럼의 기본 문자 세트는 테이블의 기본 문자 세트입니다.
이 문제는 데이터베이스가 gbk로 인코딩된 경우 발생합니다. 데이터베이스에 접근할 때 문자셋을 지정하지 않으면 gbk이다.
그러면 이 값은 시스템의 latin1을 상속받게 되어 mysql 중국어 코드가 깨집니다.
잘못된 코드에 대한 해결 방법
잘못된 코드 문제를 해결하려면 먼저 데이터베이스에서 어떤 인코딩을 사용하는지 파악해야 합니다. 지정하지 않으면 기본값은 latin1입니다.
우리가 가장 많이 사용하는 세 가지 문자 세트는 gb2312, gbk 및 utf8이어야 합니다.
그럼 데이터베이스의 문자셋은 어떻게 지정하나요? 다음은 gbk
【MySQL 명령줄 클라이언트에서 데이터베이스 생성】
mysql> CREATE TABLE `mysqlcode` (
-> `id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY 의 예입니다.
-> `content` VARCHAR( 255 ) NOT NULL
-> ) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;
현재 페이지 1/3 123다음 페이지

이상으로 MySQL 중국어 가블드코드, phpmyadmin 가블드코드, php 가블드코드의 원인과 해결방법을 요약한 1/3페이지를 소개하였고, 관련 내용도 포함하여 PHP에 관심있는 친구들에게 도움이 되었으면 좋겠습니다. 튜토리얼.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.