깨진 한자는 정말 안타깝습니다. JAVA는 한자를 싫어하고, PHP도 한자를 좋아하지 않습니다.
자바가 왜곡된 코드는 결국 스프링에서 제공하는 필터를 사용하여 필터링되었습니다. 실제로 모든 곳에서 필터링하면 속도에 영향을 주지만 W 국가에서는 먼저 고려하지 않는 것이 있습니다.
PHP에도 왜곡된 문자가 가득할 줄은 몰랐습니다. 형 MySQL을 사용하면 한자가 이렇게 친근해 보일 줄은 몰랐습니다. 하지만 다른 사람들과 상호 작용하기 위해서는 그 때, 제3자 시스템에서 사용하는 GBK 인코딩 때문이었습니다.
야, 바꿔보자
1. PHP 자체 변환 기능인 ICONV
문자열 iconv( 문자열 $in_charset , 문자열 $out_charset , 문자열 $str )
데모 사용:
$text = "유로 기호 '?'입니다.";
echo '원본:', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Plain : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;
?>
누구나 추천하는 기능인데 사용후 변환이 안되고 오류도 안나네요
2. 새로운 방법을 찾으려면 모두가 의심하는 또 다른 기능이 비효율적이지만, 어쨌든 먼저 구현하고 나머지 세 가지를 고려하십시오
//기능 사용 가능 여부 확인
echo function_exists('mb_convert_encoding');
//현재 인코딩 감지
echo mb_Detect_encoding($val, "GBK, GB2312, UTF-8");
//인코딩 변환, CP936(즉, GBK)을 UTF-8로 변환
$v=mb_convert_encoding ($val, "UTF-8", "CP936");
결과는 성공적이었습니다
좋습니다. 먼저 데이터베이스 쿼리의 결과 집합을 변환하기 위해 변환 함수를 만들어 보겠습니다.
1. "깨진 적수" 기능:
코드 복사 코드는 다음과 같습니다.
// $fContents 문자열
// $문자열 인코딩
// $to 인코딩으로 변환
함수 auto_charset($fContents,$from='gbk',$to='utf-8'){
$from = strtoupper($from)=='UTF8'? 'utf-8':$from;
$to = strtoupper($to)=='UTF8'? 'utf-8':$to;
If( strtoupper($from) === strtoupper($to) || 비어 있음($fContents) || (is_scalar($fContents) && !is_string($fContents)) ){
//인코딩이 동일하거나 문자열 스칼라가 아닌 경우 변환되지 않습니다
$fContents 반환
}
If(is_string($fContents) ) {
If(function_exists('mb_convert_encoding')){
mb_convert_encoding($fContents, $to, $from)을 반환합니다.
}그 외{
$fContents 반환;
}
}
elseif(is_array($fContents)){
foreach ( $fContents as $key => $val ) {
$ _Key = Auto_Charset ($ 키, $ 보낸 사람, $ 받는 사람)
$fContents[$_key] = auto_charset($val,$from,$to);
If($key != $_key )
unset($fContents[$key]);
}
$fContents 반환
}
그렇지 않으면{
$fContents 반환
}
}
2, 사용:
//쿼리 결과를 인쇄합니다(결과를 가정)
$arr=배열();
while($list=mssql_fetch_row($row))
{
$arr[]=$list;
}
$s=auto_charset($arr,'gbk','utf-8');
//인쇄를 시도하고 브라우저에서 인코딩을 UFT-8로 설정한 후 깨진 문자가 없는지 확인하세요
print_r($s);die();
위 내용은 PHP의 중국어 왜곡 문자에 대한 기사의 소개입니다. 모두 마음에 드셨으면 좋겠습니다.