>  기사  >  데이터 베이스  >  MySQL이 희귀 문자를 삽입하지 못하는 경우 수행할 작업

MySQL이 희귀 문자를 삽입하지 못하는 경우 수행할 작업

小云云
小云云원래의
2018-01-13 16:50:061585검색

비즈니스 측에서 일부 사용자 정보를 삽입하지 못했다고 보고했으며 오류 메시지는 "잘못된 문자열 값:"xF0xA5...."와 유사했습니다. 이 메시지는 특정 희귀 문자를 지원하지 않는 문자 집합으로 인해 발생해야 합니다. 해결 방법 이 글은 MySQL 희귀 문자 삽입 실패 문제를 해결하는 방법에 관한 것입니다.

다음은 가상 머신에서 재현된 시나리오입니다.

원래 테이블 구조 문자 세트를 시뮬레이션합니다. 환경:


use test;
CREATE TABLE `t1` (
 `id` int(10) NOT NULL AUTO_INCREMENT,
 `real_name` varchar(255) CHARACTER SET utf8 DEFAULT '' COMMENT '姓名',
 `nick` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '昵称',
 PRIMARY KEY (`id`)
) ENGINE=InnoDBAUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员卡';

step2. 희귀 문자 삽입(sqlyog 사용):

1. 먼저 온라인 환경을 시뮬레이션하고 문자 세트를 설정합니다.

MySQL이 희귀 문자를 삽입하지 못하는 경우 수행할 작업

2. 다음을 참조하세요: http://www.qqxiuzi.cn/zh/hanzi-unicode- bianma.php?zfj=kzb&ks=24E20&js=257E3)

MySQL이 희귀 문자를 삽입하지 못하는 경우 수행할 작업

Wang을 삽입하려고 합니다(단어에 Alt를 누른 상태에서 152964를 입력합니다). ) 삽입이 실패한 것을 확인할 수 있습니다.

3단계에서 real_name의 문자 집합을 수정합니다.


use test;

alter table t1 change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' ;

대규모 온라인 테이블인 경우 pt-osc를 사용하여 처리할 수 있습니다. :


pt-online-schema-change -uroot -h localhost --alter=" change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --dry-run


pt-online-schema-change -uroot -h localhost --alter=" change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --execute

4단계. 실험을 다시 삽입합니다.

1. 먼저 문자를 설정합니다.

MySQL이 희귀 문자를 삽입하지 못하는 경우 수행할 작업

2. 다시 삽입하면 삽입이 성공한 것을 확인할 수 있습니다.

MySQL이 희귀 문자를 삽입하지 못하는 경우 수행할 작업

명령줄에서 쿼리할 때 왜곡된 코드가 없습니다.

MySQL이 희귀 문자를 삽입하지 못하는 경우 수행할 작업

그렇습니다.

관련 권장 사항:

한자 변환을 지원하는 php의 개발 예입니다. 희귀 문자에 대한 병음

희귀 문자에 관한 기사 10개 추천

PHP 한자를 희귀 문자를 지원하고 자동으로 UTF-8 인코딩을 인식하는 병음으로 변환 Class_PHP Tutorial

위 내용은 MySQL이 희귀 문자를 삽입하지 못하는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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