>php教程 >PHP开发 >PHP 인코딩 변환-문자 인코딩 변환

PHP 인코딩 변환-문자 인코딩 변환

黄舟
黄舟원래의
2016-12-15 11:16:172343검색

큰 인코딩 문제 제공 이것은 플래시 효과를 사용할 때 발생하는 문제입니다. 아래에서는 N 종류의 PHP 인코딩 변환 및 문자 인코딩 변환 기능을 제공합니다. 마음에 드시면 살펴보세요.

위의 두 VB 코드는 각각 UTF-8(UTF8ENCODEURI) 및 GB2312(GBKENCODEURI)로 변환되었습니다.

Private sub commit1_click ()

Debug.print (UTF8NCODEURI ("한자"))
Debug.print (gbkencodeuri ("한자"))
End Sub

기능 UTF8ENCODEURI(SZINPUT)
DIM WCH, UCH, SZRET
DIM X
DIM NASC, NASC2, NASC3

IF SZINPUT = "" N

UTF8ENCODEURI = SZINPUT
EXIT FUNCTION
END IF

FOR X = 1 TO LEN(SZINPUT)

WCH = MID(SZINPUT, X, 1)
NASC = ASCW(WCH)

IF NASC < 0 THEN NASC = NASC + 65536

IF (NASC AND &HFF80) = 0 THEN

SZRET = SZRET & WCH
ELSE
IF (NASC AND &HF000 ) = 0 그런 다음 else uch = "%"& hex ((nasc 2 ^ 12) 또는 & he0) & "%"& _ <🎜 hex ((nasc 2 ^ 6) 및 & h3f 또는 & h80) & "% " & _
      HEX(NASC AND &H3F OR &H80)
SZRET = SZRET & UCH
END IF
END IF
NEXT


iconv() 함수
정의 및 사용법
정의 및 사용법
iconv() 함수의 기능은 문자열의 인코딩을 변환하는 것입니다.

설명
string iconv(string in_charset, string out_charset, string str)

팁 및 메모
참고

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


mb_convert_encoding() 함수

정의 및 사용법

정의 및 사용법
mb_convert_encoding() 함수의 역할은 문자열의 인코딩을 변환하는 것입니다.

설명

string mb_convert_encoding ( string str, string to-encoding [, mix from-encoding])

참고: 하지만 먼저 mbstring 확장 라이브러리를 활성화해야 합니다.
둘의 차이점: mb_convert_encoding은 콘텐츠를 기반으로 인코딩을 자동으로 식별합니다. mb_convert_encoding은 강력하지만 실행 효율성은 iconv보다 훨씬 낮습니다.

요약: iconv는 일반적으로 원본이 사용되는 경우에만 사용됩니다. 인코딩을 결정할 수 없습니다. mb_convert_encoding 함수를 사용하려면 어떤 인코딩을 사용해야 합니까?

1. GBK로 인코딩된 문자열을 UTF-8로 인코딩된 문자열 보기 일반 복사로 클립보드 인쇄로 변환하시겠습니까?

header("content -Type: text/html; charset=Utf-8")

echo mb_convert_encoding("당신은 나의 좋은 친구입니다", "UTF-8", "GBK")

?>


2. UTF-8 인코딩 문자열을 GB2312 인코딩 문자열 보기 일반 복사로 클립보드 인쇄로 변환하시겠습니까?
// 이 파일을 utf-8 인코딩 형식 파일로 저장한 후 테스트해 보세요.
< php
header("content-Type: text/html; charset=gb2312");
echo mb_convert_encoding("당신은 나의 좋은 친구입니다", "gb312", "utf-8")
? >


출처: fleaphp.net
mb_convert_encoding 함수는 PHP 내부 멀티바이트 문자열 인코딩 변환 함수로, 필요할 때 사용할 수 있습니다(예: GB2312 인코딩 문제 해결) 환경에서 Ajax를 사용하여 발생하는 한자 깨짐)은 인코딩 변환을 용이하게 하여 웹 페이지 깨짐 문제를 해결합니다.
는 거의 모든 인코딩을 지원합니다. PHP 4 >= 4.0.6, PHP 5 버전이 지원됩니다.

함수 프로토타입: 참고:
/**
* 멀티바이트 문자열 인코딩 변환 함수
*
* @param string str 인코딩 변환이 필요한 문자열
* @ param string to_encoding은 gb2312, gbk, utf-8 등과 같은 특정 인코딩으로의 변환을 지정합니다.
* @param mix from_encoding은 JIS 지정, eucjp-win과 같이 원래 문자열의 인코딩을 혼합하여 지정합니다. sjis at the same time -win 혼합 인코딩
* @return string
string mb_convert_encoding (string str, string to_encoding [, mix from_encoding]) 사용 예:

1. GBK 인코딩 문자열을 UTF로 변환합니다. -8 인코딩 문자열 보기 일반 복사를 클립보드 인쇄로?
header("content-Type: text/html; charset=Utf-8")
echo mb_convert_encoding("당신은 나의 좋은 친구입니다. " , "UTF-8", "GBK"); 
?>


2. UTF-8로 인코딩된 문자열을 GB2312로 인코딩된 문자열 보기 일반 복사로 클립보드 인쇄로 변환하시겠습니까?
/ / 주의하세요. 이 파일을 utf-8 인코딩 형식 파일로 저장한 다음
header("content-Type: text/html; charset=gb2312")
echo mb_convert_encoding(")을 테스트합니다. you You are my good friend", "gb312", "utf-8");
?>

// 이 파일을 utf-8 인코딩 형식 파일로 저장한 후 다시 테스트해 보세요
3. 전체 페이지 변환
이 ​​방법은 모든 코딩 환경에 적용 가능합니다. 이런 방식으로 처음 128자(표시 문자) 이외의 문자 집합은 NCR로 표시됩니다("한자"와 같은 숫자 문자 참조는 "汉字" 형식으로 변환됩니다). 이 인코딩은 어떤 코딩 환경에서도 페이지가 정상적으로 표시될 수 있습니다. ob_start('mb_output_handler');


mb_internal_encoding("gb2312") // gb2312는 웹사이트의 원본 인코딩입니다. ); ob_start('mb_output_handler');
mb_convert_encoding 함수를 사용하려면 PHP의 mbstring(멀티바이트 문자열) 확장을 활성화해야 합니다.

다음 화면이 나타나면 PHP 정보 페이지를 확인하세요.

2008-10-16_111050.png (137.62 KB)
2008-10-16 12:01

그런 다음 이는 mbstring(멀티바이트 문자열) 확장 지원이 활성화되었음을 의미합니다.

위 화면이 나타나지 않는 경우, PHP가 이 확장 기능을 지원할 수 있도록 다음과 같이 설정해야 합니다.

1. Windows 서버 환경

php.ini 파일을 편집하고, Extension=php_mbstring.dll 앞의 ;를 제거하고 웹 서버를 다시 시작합니다.

2. Linux 서버 환경

구성 컴파일 시 --enable-mbstring=cn 컴파일 매개변수를 추가한 후 PHP를 컴파일하고 설치합니다.

위 내용은 PHP 인코딩 변환-문자 인코딩 변환 내용입니다. 더 많은 관련 글은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!

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