Strings utf8_decode

(PHP 4, PHP 5, PHP 7, PHP 8)

utf8_decode — 유효하지 않거나 표현할 수 없는 문자를 대체하여 문자열을 UTF-8에서 ISO-8859-1로 변환합니다.

경고 이 함수는 PHP 8.2.0부터 더 이상 사용되지 않습니다. 이 기능에 의존하는 것은 매우 권장되지 않습니다.


설명

utf8_decode(string $string): string

이 함수는 문자열 stringUTF-8 인코딩에서 ISO-8859-1로 변환합니다. 유효한 UTF-8이 아닌 문자열의 바이트 및 ISO-8859-1에 존재하지 않는 UTF-8 문자(즉, U+00FF 이상의 코드 포인트)는 ?로 대체됩니다.

메모:

ISO-8859-1 문자 인코딩을 사용하는 것으로 표시된 많은 웹 페이지는 실제로 유사한 Windows-1252 인코딩을 사용하며 웹 브라우저는 ISO-8859-1 웹 페이지를 Windows-1252로 해석합니다. Windows-1252는 특정 ISO-8859-1 제어 문자 대신 유로 기호() 및 중괄호( )와 같은 인쇄 가능한 추가 문자를 제공합니다. 이 함수는 이러한 Windows-1252 문자를 올바르게 변환하지 않습니다. Windows-1252 변환이 필요한 경우 다른 기능을 사용하십시오.


매개변수

string
UTF-8로 인코딩된 문자열입니다.

반환 값

string의 ISO-8859-1 번역을 반환합니다.


변경 로그

버전 설명
8.2.0 이 함수는 더 이상 사용되지 않습니다.
7.2.0 이 함수는 XML 확장에서 PHP의 핵심으로 이동되었습니다. 이전 버전에서는 XML 확장이 설치된 경우에만 사용할 수 있었습니다.

Examples

예제 #1 기본 예제

                  
<?php
// Convert the string 'Zoë' from UTF-8 to ISO 8859-1
$utf8_string = "\x5A\x6F\xC3\xAB";
$iso8859_1_string = utf8_decode($utf8_string);
echo bin2hex($iso8859_1_string), "\n";

// Invalid UTF-8 sequences are replaced with '?'
$invalid_utf8_string = "\xC3";
$iso8859_1_string = utf8_decode($invalid_utf8_string);
var_dump($iso8859_1_string);

// Characters which don't exist in ISO 8859-1, such as
// '€' (Euro Sign) are also replaced with '?'
$utf8_string = "\xE2\x82\xAC";
$iso8859_1_string = utf8_decode($utf8_string);
var_dump($iso8859_1_string);
?>
                  
                

위의 예는 다음을 출력합니다.

5a6feb
string(1) "?"
string(1) "?"
                

기타

  • utf8_encode() - 문자열을 ISO-8859-1에서 UTF-8로 변환합니다.
  • mb_convert_encoding() - 문자열을 한 문자 인코딩에서 다른 문자 인코딩으로 변환
  • UConverter::transcode() - 문자열을 한 문자 인코딩에서 다른 문자 인코딩으로 변환
  • iconv() - 문자열을 한 문자 인코딩에서 다른 문자 인코딩으로 변환