그러나 영어에는 일반적으로 인코딩 문제가 없으며 중국어 데이터에만 이 문제가 있습니다. 예를 들어, 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 ");
echo mb_convert_encoding("You are my friend", "UTF-8", "GBK");
?>
Big5에 또 다른 GB2312
코드 복사 코드는 다음과 같습니다.
header("content-Type: text /html; charset =big5");
echo mb_convert_encoding("You are my friend", "big5", "GB2312");
?>
그러나 위 기능을 사용하려면, 설치해야 하지만 먼저 mbstring 확장 라이브러리를 활성화해야 합니다.
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 ; 앞에 php_mbstring.dll을 제거합니다. 여러 입력 인코딩을 지정하려면
콘텐츠에 따라 자동으로 식별되지만 실행 효율성은 iconv
string iconv; string in_charset, string out_charset, string str )
참고: 변환할 인코딩을 지정하는 것 외에도 두 번째 매개변수는 //TRANSLIT 및 //IGNORE라는 두 개의 접미사를 추가할 수도 있습니다. 여기서 //TRANSLIT는 자동으로 문자를 변환합니다. 하나 이상의 대략적인 문자로 직접 변환할 수 없는 문자, //IGNORE는 변환할 수 없는 문자를 무시하고 기본 효과는 첫 번째 잘못된 문자를 자르는 것입니다.
실패 시 변환된 문자열을 반환하거나 FALSE를 반환합니다.
사용:
ignore 매개변수가 없으면 문자 "-"를 gb2312로 변환할 때 iconv에서 오류가 발생하는 것으로 나타났습니다. 구원받다. 어쨌든 이 "—"는 성공적으로 변환될 수 없으며 출력될 수 없습니다. 또한 mb_convert_encoding에는 이 버그가 없습니다.
일반적으로 mb_convert_encoding 함수는 원래 인코딩을 확인할 수 없거나
from_encoding으로 지정되지 않은 경우에만 사용됩니다. 변환 전 문자 코드 이름은 배열 또는 문자열일 수 있습니다. 지정하지 않으면 내부 인코딩이 사용됩니다.
/* JIS, eucjp-win, sjis-win, 그런 다음 str을 UCS-2LE로 변환합니다. */
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”)
/* “auto”는 다음으로 확장됩니다. “ASCII ,JIS,UTF-8,EUC-JP,SJIS” */
$str = mb_convert_encoding($str, “EUC-JP”, “auto”)
예:
코드 복사 코드는 다음과 같습니다.
$content = iconv("GBK", "UTF-8", $content)
$content = mb_convert_encoding ($content, "UTF-8", "GBK");
PHP에서 mb_convert_encoding 트랜스코딩 사용 시의 작은 함정
PHP 프로그램에서 mb_convert_encoding() 메서드 사용 문자 인코딩을 변환하는 것입니다. 우리 모두는 그것에 익숙하며 매일 광범위하게 사용합니다. 그리고 일반적으로 이 방법은 충분히 좋은 성능을 발휘하며 칭찬받을 가치가 있습니다. 하지만 프로젝트에서 UTF8을 GBK로 변환하기 위해 이를 사용해야 했고, 일부 특수 문자를 변환할 때 사소한 문제를 발견했습니다. 구체적인 성능은 mb가 utf8로 인코딩될 수 있지만 gbk로 인코딩될 수 없는 문자를 변환한다는 것입니다.
위 내용은 대화의 의미를 소개하고 있습니다. PHP에서 인코딩 변환 함수 mb_convert_encoding과 iconv를 사용하는 방법에는 대화의 의미가 포함되어 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.