PHP에서 mb_convert_encoding과 iconv 함수의 깊이 있는 해석

mb_convert_인코딩 이 함수는 인코딩을 변환하는 데 사용됩니다.원래는 줄곧 프로그램 인코딩이라는 개념에 대해 이해하지 못했지만, 지금은 좀 깨달은 것 같다.그러나 영어는 일반적으로 인코딩 문제가 존재하지 않고 중국어 데이터만 이 문제가 있다.예를 들어 Zend Studio나 Editplus로 프로그램을 쓸 때 gbk 인코딩을 사용합니다. 만약에 데이터가 데이터베이스에 들어가야 하고 데이터베이스의 인코딩이utf8일 때 데이터를 인코딩해서 변환해야 합니다. 그렇지 않으면 데이터베이스에 들어가면 난코딩이 됩니다.mb_convert_encoding의 용법은 공식 참조:http://php.net/manual/zh/function.mb-convert-encoding.php GBK To UTF-8 만들기

< ?php
header("content-Type: text/html; charset=Utf-8");
echo mb_convert_encoding("S ", "UTF-8", "GBK");
?>
GB2312 to Big5 하나 더

< ?php
header("content-Type: text/html; charset=big5");
echo mb_convert_encoding(" ", "big5", "GB2312");
?>
그러나 위의 함수를 사용하려면 설치가 필요하지만 먼저 enable mbstring 확장 라이브러리가 필요합니다.PHP의 또 다른 함수 iconv도 문자열 인코딩을 변환하는 데 사용되며 상함수와 기능이 비슷하다.다음은 또 몇 가지 상세한 예가 있다

iconv ― Convert string to requested character encoding
(PHP 4 >= 4.0.5, PHP 5)
mb_convert_encoding ― Convert character encoding
(PHP 4 >= 4.0.6, PHP 5)
용법:string mb_convert_encoding(stringstr,stringto_encoding[,mixedfrom_encoding])은 php에서 먼저 enable mbstring 확장 라이브러리를 사용해야 합니다.ini리장;extension=php_mbstring.dll 앞의 것;제거mb_convert_인코딩은 다양한 입력 인코딩을 지정할 수 있으며 내용에 따라 자동으로 식별되지만 실행 효율은 iconv보다 너무 떨어진다.string iconv(string in_charset,string out_charset,string str) 주의: 두 번째 인자는 전환할 인코딩을 지정할 수 있는 것 외에 두 개의 접두사를 추가할 수 있습니다.//TRANSLIT와/IGNORE입니다. 그 중에서//TRANSLIT는 자동으로 직접 전환할 수 없는 문자를 하나 이상의 비슷한 문자로 바꾸고,/IGNORE는 전환할 수 없는 문자를 무시합니다. 기본 효과는 첫 번째 문자에서 차단됩니다.Returns the converted string or FALSE on failure.사용: iconv가 문자를 변환하는 것을 발견했습니다. "gb2312에서 오류가 발생했습니다. ignore 파라미터가 없으면 모든 문자열 뒤에 저장할 수 없습니다.어쨌든, 이것은'변환에 성공하지 못하고 출력할 수 없다.별도mb_convert_인코딩에는 이 버그가 없습니다.
일반적인 상황에서 iconv를 사용하는데, 원본 인코딩이 어떤 인코딩인지 확인하지 못하거나 iconv가 전환된 후 정상적으로 표시되지 않을 때만 mb_convert_인코딩 함수..예:

from_encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used.
/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”);
/* “auto” is expanded to “ASCII,JIS,UTF-8,EUC-JP,SJIS” */
$str = mb_convert_encoding($str, “EUC-JP”, “auto”);

좋은 웹페이지 즐겨찾기