JSP의 코드 깨짐 문제는 해결됐을 텐데, 저를 포함해 아직도 MYSQL 코드 깨짐 문제가 해결되지 않은 분들이 계셔서 이번에는 완전히 해결되길 바라면서 좀 더 많은 정보를 찾아봤습니다. MYSQL 데이터베이스의 잘못된 코드 문제.
첫 번째 방법, 매우 예리한 요약:
가상 호스트는 자주 바뀌고, 서비스 제공자마다 MYSQL 버전이 다르기 때문에 데이터를 가져올 때 문자가 깨져 표시되지 않는 등의 문제가 항상 발생합니다. 평소에 많은 정보를 확인했고, 제가 가지고 있는 기술을 요약해 보겠습니다.
WINDOWS에서 가져오기는 다음과 같습니다.
MYSQL 명령을 사용합니다.
DOS 명령 아래에 mysql의 bin 디렉터리를 입력합니다. mysql -uroot -p 비밀번호 데이터베이스 이름 입력 <데이터베이스를 복원하려면 예를 들어 D 드라이브에 있는 test.sql이라는 데이터베이스를 로컬 test2 데이터베이스로 복원하려는 경우 다음과 같습니다. mysql -uroot -p 비밀번호 test2 이전에 외국 호스트에서 사용했던 Mysql은 4.x 시리즈인데, GBK와 UTF-8 모두 잘못된 코드가 없어서 느낌이 꽤 좋았습니다. 새 호스트의 Mysql이 5.0 이후 버전일 거라고는 예상하지 못했습니다. 데이터를 가져와서 Php로 읽어보니 물음표와 잘못된 코드로 가득 차 있었습니다. 이전에 한 번 전환한 후 문자가 깨지는 현상을 경험한 적이 있는데 그 이유는 MySQL 버전 간의 차이 때문인 것 같습니다.
정보를 확인해야 했고, UTF8 데이터베이스에서 잘못된 문자를 제거하기 위해 mysql_connect 뒤에 SET NAMES UTF8을 추가하는 해결책을 찾았습니다.
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query("SET NAMES 'GBK'");
데이터베이스 문자 집합은 utf-8입니다.
연결 문에 사용하세요. 🎜>mysql_query(" SET NAMES 'UTF8'");
mysql_query("SET CHARACTER SET UTF8");
mysql_query("SET CHARACTER_SET_RESULTS=UTF8'")
다른 방법은 다음과 같습니다. 자신의 컴퓨터에서 MYSQL 문자 세트를 변경할 수 있습니다. 이는 일반적으로 MYSQ4 및 MYSQL5의 두 버전에서 유효합니다.
두 번째 방법: 아주 좋은 설명이므로 시도해 볼 수 있습니다.
mysql 왜곡 처리 요약:
(1) 자바에서 한자는 정상적으로 처리되는데, cmd 클라이언트에서 깨져 보이는 문자는 문자셋 문제입니다.
(2) 필드 길이를 충분히 길게 설정했는데 한자를 삽입할 때, com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for 열 오류는 문자 집합 문제입니다.
(3) 잘못된 코드 문제는 궁극적으로 문자 집합 문제입니다. 서버, 클라이언트, 데이터베이스, 연결, 결과 측면만 있으면 됩니다.
------------해결책---- -------------- ---
(1) my.ini(MySQL 서버 인스턴스 구성 파일) 수정