>  기사  >  백엔드 개발  >  PHP가 데이터베이스에 데이터를 삽입할 때 잘못된 문자가 발생합니다.

PHP가 데이터베이스에 데이터를 삽입할 때 잘못된 문자가 발생합니다.

藏色散人
藏色散人원래의
2020-09-29 10:49:042949검색

PHP가 데이터베이스에 데이터를 삽입할 때 데이터가 왜곡되는 해결 방법: 먼저 데이터베이스의 인코딩을 utf8로 설정한 다음 데이터베이스에 삽입할 텍스트 인코딩 방법을 결정하고 마지막으로 스위치 문을 사용하여 데이터 삽입을 결정합니다. .

PHP가 데이터베이스에 데이터를 삽입할 때 잘못된 문자가 발생합니다.

추천: "PHP Video Tutorial"

php에서 데이터베이스에 데이터를 삽입했는데 문자 깨짐 현상이 발생합니다

일반적으로 데이터베이스에 삽입된 데이터 깨짐은 인코딩 문제로 내용을 확인하실 수 있습니다. 데이터베이스에 삽입하기 전에 인코딩 방법이 데이터베이스에서 사용되는 인코딩 방법(예: utf-8)과 동일한 경우 삽입 작업이 수행됩니다.

먼저 데이터베이스에 삽입하려는 텍스트의 인코딩 방법을 결정합니다. utf-8이면 삽입하고, 그렇지 않으면 utf-8로 변환한 다음 삽입합니다.

        $e=mb_detect_encoding($text, array('UTF-8', 'GBK', 'gb2312'));
        switch($e){
            case 'UTF-8' : //如果是utf8编码就直接插入数据库
                break;
            case 'GBK': //如果是gbk编码就转换为utf-8之后再插入数据库
            iconv("GBK", "UTF-8",$data) ;
            break;
            case 'GB2312': //如果是GB2312编码就转换为utf-8之后再插入数据库
            iconv("GB2312", "UTF-8",$data) ;
        break;
        }

인코딩은 다음과 같습니다. 프로그램의 인코딩은 데이터베이스에 사용된 인코딩과 일치해야 합니다. 그러나 데이터베이스에 삽입된 데이터에는 여전히 잘못된 문자가 있습니다. PHP를 사용하여 mysql에 연결할 때 인코딩이 설정되지 않았습니다. 물론 데이터베이스에 연결한 후 데이터베이스의 인코딩을 utf8로 설정한 다음 데이터베이스에 삽입하면 문자가 깨지지 않습니다.

코드는 다음과 같습니다:

$this->conn = mysqli_connect($db['default']['hostname'], $db['default']['username'], $db['default']['password'], $db['default']['dbname']) or die('Connect error!'); //连接到数据库
mysqli_set_charset($this->conn, 'utf8'); //此处不能用utf-8

위 내용은 PHP가 데이터베이스에 데이터를 삽입할 때 잘못된 문자가 발생합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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