>백엔드 개발 >PHP 튜토리얼 >php_php에서 문자 집합 변환을 위한 iconv 함수 사용 요약 팁

php_php에서 문자 집합 변환을 위한 iconv 함수 사용 요약 팁

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-05-16 20:35:161036검색

iconv 함수 라이브러리는 다양한 문자 집합 간의 변환을 완료할 수 있으며 PHP 프로그래밍에 없어서는 안 될 기본 함수 라이브러리입니다.

은 다음과 같이 사용됩니다.

코드 복사 코드는 다음과 같습니다.

$string = "Script House에 오신 것을 환영합니다!";
iconv("utf8","gbk",$string)//문자열 인코딩을 utf8에서 gbk로 변환합니다.

은 다음과 같이 확장됩니다.

코드 복사 코드는 다음과 같습니다.

echo $str= 'Script House에 오신 것을 환영합니다!';
echo '
';
echo iconv('GB2312', 'UTF-8', $str); //문자열 인코딩을 GB2312에서 UTF-8로 변환
echo '
';
echo iconv_substr($str, 1, 1, 'UTF-8'); //바이트 대신 문자 수만큼 자릅니다.
print_r(iconv_get_encoding()); //현재 페이지 인코딩 정보를 가져옵니다
echo iconv_strlen($str, 'UTF-8'); //설정된 인코딩의 문자열 길이를 가져옵니다
//이것도 사용됩니다
$content = iconv("UTF-8","gbk//TRANSLIT",$content);

비고:

1. iconv는 PHP의 기본 기능이 아니며, 기본적으로 설치되는 모듈이기도 합니다. 사용하기 전에 설치해야 합니다.

Windows 2000 PHP인 경우 php.ini 파일을 수정하고 확장자=php_iconv.dll 앞에 있는 ";"을 제거해야 합니다. 동시에 원래 PHP 설치 파일에 iconv.dll을 복사해야 합니다. winnt/system32(dll이 이 디렉터리를 가리키는 경우 이 단계를 로컬에서 수행하지 않은 것입니다)
Linux 환경에서는 정적 설치를 사용하여 구성 시 --with-iconv 항목을 추가하면 됩니다. iconv 항목은 phpinfo에서 확인할 수 있습니다. (Linux7.3 Apache4.06 php4.3.2);

이걸로 PHP의 iconv 소개를 마칩니다

2. iconv 함수를 사용하여 캡처된 utf-8 인코딩 페이지를 gb2312로 변환합니다. iconv 함수를 사용하여 캡처된 데이터를 트랜스코딩해야만 데이터가 아무 이유 없이 적어지는 것을 발견했습니다. 그 이유는 이렇습니다.

코드 복사 코드는 다음과 같습니다.

문자열 iconv(문자열 in_charset, 문자열 out_charset, 문자열 str)

참고: 변환할 인코딩을 지정하는 것 외에도 두 번째 매개변수는 //TRANSLIT 및 //IGNORE라는 두 개의 접미사를 추가할 수도 있습니다. 여기서 //TRANSLIT는 직접 변환할 수 없는 문자를 하나 이상의 대략적인 문자로 자동 변환합니다. //IGNORE는 변환할 수 없는 문자를 무시하며 기본 효과는 첫 번째 잘못된 문자를 자르는 것입니다. 잘리면 당연히 줄어들겠죠;

iconv("UTF-8","GB2312//IGNORE",$string)을 이와 같이 수정할 수 있습니다. 그러면 변환할 수 없는 문자가 무시됩니다.

추가:

PHP의 mb_convert_encoding 및 iconv 함수 소개

mb_convert_encoding 함수는 iconv 함수와 유사하게 인코딩을 변환하는 데 사용됩니다.

영어에는 일반적으로 인코딩 문제가 없으며 중국어 데이터에만 이 문제가 있습니다. 예를 들어, Zend Studio 또는 Editplus를 사용하여 프로그램을 작성할 때 gbk 인코딩을 사용합니다. 데이터를 데이터베이스에 입력해야 하고 데이터베이스 인코딩이 utf8이면 데이터를 인코딩하고 변환해야 합니다. 데이터베이스에 들어갈 때 깨집니다.

mb_convert_encoding 사용법은 공식 홈페이지를 참조하세요:

http://cn.php.net/manual/zh/function.mb-convert-encoding.php

GBK를 UTF-8로 만들기

코드 복사 코드는 다음과 같습니다.

header("content-Type: text/html; charset=Utf-8"); //문자 인코딩을 utp-8로 설정
echo mb_convert_encoding("내", "UTF-8", "GBK");
?>

또 다른 GB2312가 Big5로

코드 복사 코드는 다음과 같습니다.

header("content-Type: text/html; charset=big5");
echo mb_convert_encoding("친구", "big5", "GB2312");
?>

그러나 위 기능을 사용하려면 설치가 필요하지만 먼저 mbstring 확장 라이브러리를 활성화해야 합니다. 원칙은 여전히 ​​동일합니다. php.ini를 수정합니다.
PHP의 또 다른 함수 iconv도 문자열 인코딩을 변환하는 데 사용되며 해당 기능은 위 함수와 유사합니다.

아래에 몇 가지 자세한 예가 있습니다.

코드 복사 코드는 다음과 같습니다.

iconv — 문자열을 요청된 문자 인코딩으로 변환
(PHP 4 >= 4.0.5, PHP 5)
mb_convert_encoding — 문자 인코딩 변환
(PHP 4 >= 4.0.6, PHP 5)

사용법:

string mb_convert_encoding ( string str, string to_encoding [, mix from_encoding] )

먼저 mbstring 확장 라이브러리를 활성화하고 php.ini에서 Extension=php_mbstring.dll 앞의 ;를 제거해야 합니다
mb_convert_encoding은 여러 입력 인코딩을 지정할 수 있으며 내용에 따라 자동으로 식별합니다. 하지만 iconv보다 실행 효율성이 훨씬 떨어지므로 이 mb_convert_encoding() 함수를 설명해야 하는 이유는 무엇입니까? 답변은 다음과 같습니다.

"-" 문자를 gb2312로 변환할 때 iconv에서 오류가 발생하는 것으로 확인되었습니다. 무시 매개변수가 없으면 이 문자 뒤에 오는 모든 문자열을 저장할 수 없습니다. 어쨌든 이 "-"는 성공적으로 변환될 수 없으며 출력될 수 없습니다. 게다가 mb_convert_encoding에는 이런 버그가 없습니다.

일반적으로 iconv를 사용합니다. 원본 인코딩이 무엇인지 알 수 없거나 변환 후 iconv가 정상적으로 표시되지 않는 경우에만 mb_convert_encoding 함수를 사용하세요.

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