방법: 1. 함수의 두 번째 매개변수 뒤에 "//IGNORE"를 추가합니다. 구문은 "iconv("UTF-8","GB2312//IGNORE",..)"입니다. 2. gb2312를 "로 바꿉니다. utf-8"의 경우 구문은 "iconv("GB2312","UTF-8",..)"입니다.
이 글의 운영 환경: Windows 10 시스템, PHP 버전 7.1, Dell G3 컴퓨터
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 '<br />'; echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8 echo '<br />'; echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节 print_r(iconv_get_encoding()); //得到当前页面编码信息 echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度 ?>
추천 학습: "PHP Video Tutorial"
위 내용은 PHP의 iconv 함수가 오류를 보고하는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!