>  기사  >  백엔드 개발  >  PHP의 iconv 함수가 오류를 보고하는 경우 수행할 작업

PHP의 iconv 함수가 오류를 보고하는 경우 수행할 작업

WBOY
WBOY원래의
2022-04-13 10:26:002578검색

방법: 1. 함수의 두 번째 매개변수 뒤에 "//IGNORE"를 추가합니다. 구문은 "iconv("UTF-8","GB2312//IGNORE",..)"입니다. 2. gb2312를 "로 바꿉니다. utf-8"의 경우 구문은 "iconv("GB2312","UTF-8",..)"입니다.

PHP의 iconv 함수가 오류를 보고하는 경우 수행할 작업

이 글의 운영 환경: Windows 10 시스템, PHP 버전 7.1, Dell G3 컴퓨터

iconv 함수가 php에서 오류를 보고하는 경우 대처 방법

iconv() 소개

iconv 함수는 알려진 문자 세트 파일을 알려진 다른 문자 세트 파일로 변환할 수 있습니다. 예: GB2312에서 UTF-8로 변환합니다.

iconv 기능은 php5에 내장되어 있으며 기본적으로 GB 문자 집합이 켜져 있습니다.

iconv() error

Iconv에서는 "-" 문자를 gb2312로 변환할 때 오류가 발생합니다. 해결 방법은 변환해야 하는 인코딩 뒤에 "//IGNORE"를 추가하는 것입니다. iconv 함수의 두 번째 매개변수입니다. 다음과 같이:

      iconv("UTF-8", "GB2312//IGNORE", $data)

ignore는 변환 중 오류를 무시한다는 의미입니다. 무시 매개변수가 없으면 이 문자 뒤에 오는 모든 문자열을 저장할 수 없습니다.

PHP에서 iconv 함수 라이브러리는 다양한 문자 집합 간의 변환을 완료할 수 있으며 PHP 프로그래밍에 없어서는 안 될 기본 함수 라이브러리이지만 때때로 아무 이유 없이 iconv가 일부 데이터를 트랜스코딩하는 데 어려움을 겪습니다. 예를 들어 "— 또는 중국어 번체" 문자를 gb2312로 변환하면 오류가 발생합니다.

이 기능의 사용법을 천천히 살펴보겠습니다.

가장 간단한 애플리케이션은 gb2312를 utf-8로 바꿉니다.

`$text``=iconv(``"GB2312"``,``"UTF-8"``,``$text``);`

$text=iconv("UTF-8","GB2312",$text)를 사용하는 과정에서 다음과 같은 특수 문자가 발견되면: "—또는 중국어 번체", "." 및 기타 문자를 영어 이름으로 사용하면 변환이 중단됩니다. 이 문자 뒤의 텍스트는 더 이상 변환할 수 없습니다.

이 문제를 해결하려면 다음 코드를 사용하여 해결할 수 있습니다.

`$text``=iconv(``"UTF-8"``,``"GBK"``,``$text``);`

읽으신 내용이 맞습니다. 매우 간단합니다. gb2312를 사용하지 말고 GBK로 작성하세요.

또 다른 방법이 있습니다. 두 번째 매개변수에 //IGNORE를 추가하고 오류를 무시하는 방법은 다음과 같습니다.

`iconv(``"UTF-8"``,``"GB2312//IGNORE"``,``$data``);`

이 두 방법 사이에 특별한 비교는 없습니다. 첫 번째 방법(gb2312 대신 GBK)이 더 낫다고 생각합니다.

예제는 다음과 같습니다.

  <?php
    echo $str= ‘你好,这里是卖咖啡!’;
    echo &#39;<br />&#39;;
    echo iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $str); //将字符串的编码从GB2312转到UTF-8
    echo &#39;<br />&#39;;
    echo iconv_substr($str, 1, 1, &#39;UTF-8&#39;); //按字符个数截取而非字节
    print_r(iconv_get_encoding()); //得到当前页面编码信息
    echo iconv_strlen($str, &#39;UTF-8&#39;); //得到设定编码的字符串长度
  ?>

추천 학습: "PHP Video Tutorial"

위 내용은 PHP의 iconv 함수가 오류를 보고하는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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