>백엔드 개발 >PHP 문제 >PHP의 UFT-8 중국어 인코딩이 왜곡되면 어떻게 해야 합니까?

PHP의 UFT-8 중국어 인코딩이 왜곡되면 어떻게 해야 합니까?

coldplay.xixi
coldplay.xixi원래의
2020-07-21 11:12:552849검색

php에서 uft-8의 잘못된 중국어 인코딩에 대한 해결 방법: 먼저 코드 시작 부분에 관련 코드 줄을 추가한 다음 [파일-다른 이름으로 저장]을 클릭하여 파일 인코딩이 [UTF-8]인지 확인하세요. 마지막으로 PHP 페이지에서 BOM 태그를 삭제합니다.

PHP의 UFT-8 중국어 인코딩이 왜곡되면 어떻게 해야 합니까?

php에서 uft-8 중국어 인코딩이 잘못된 코드에 대한 솔루션:

1 코드 시작 부분에 줄을 추가하세요:

header("Content-Type: text/html;charset=utf-8");

2. 편집기 메뉴: "파일" -> "다른 이름으로 저장", 현재 파일의 인코딩을 볼 수 있습니다. 파일 인코딩이 UTF-8인지 확인하세요. ANSI인 경우, 인코딩을 UTF-8로 변경해야 합니다.
UTF-8
如果是ANSI,需要将编码改成:UTF-8

3.PHP文件头BOM问题:
PHP文件一定不可以有BOM标签,否则,会出现session不能使用的情况,并有类似的提示:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent

这是因为,在执行session_start()的时候,整个页面不能有输出,但是当由于前PHP页面存在BOM标签,PHP把这个BOM标签当成是输出了,所以就出错了!所以PHP页面一定要删除BOM标签。
删除这个BOM标签的方法:
1.可以用Dreamweaver打开文件,并重新保存,即可以去除BOM标签

2.可以用EditPlus打开文件,并在菜单“首选项”->“文件”->"UTF-8标识",设置为:“总是删除签名”,
然后保存文件,即可以去除BOM标签!

4.PHP以附件形式保存文件的时候,UTF-8编码问题:PHP以附件形式保存文件,文件名必须是GB2312编码,否则,如果文件名中有中文的话,将是显示乱码。

如果你的PHP本身是UTF-8编码格式的文件,需要将文件名变量由UTF-8转成GB2312

3. PHP 파일 헤더 BOM 문제:

PHP 파일에는 BOM 태그가 없어야 합니다. 그렇지 않으면 세션을 사용할 수 없으며 다음과 같은 유사한 프롬프트가 표시됩니다.

iconv("UTF-8", "GB2312", "$filename");
이것은 실행 중에 session_start() 하면 페이지 전체를 출력할 수 없는데 이전 PHP 페이지에 BOM 태그가 존재하기 때문에 PHP에서는 BOM 태그를 출력으로 처리하여 오류가 발생합니다! 따라서 PHP 페이지에서 BOM 태그를 삭제해야 합니다.

이 BOM 태그를 삭제하는 방법:
🎜1. Dreamweaver로 파일을 열고 다시 저장할 수 있습니다. 즉, BOM 태그를 제거할 수 있습니다. 🎜🎜2. EditPlus로 파일을 열고 "기본 설정"을 선택할 수 있습니다. > 메뉴 "->"UTF-8 ID"의 "파일", "항상 서명 제거"로 설정, 🎜그런 다음 파일을 저장하면 BOM 태그를 제거할 수 있습니다! 🎜🎜4. PHP가 파일을 첨부 파일로 저장할 때 UTF-8 인코딩 문제: PHP가 파일을 첨부 파일로 저장할 때 파일 이름은 GB2312로 인코딩되어야 합니다. 그렇지 않으면 파일 이름에 중국어가 있으면 왜곡됩니다. 🎜🎜PHP 자체가 UTF-8 인코딩 형식의 파일인 경우 파일 이름 변수를 UTF-8에서 GB2312로 변환해야 합니다. 🎜🎜
function utf8_substr($str,$len) 
{ 
  for($i=0;$i<$len;$i++) 
  { 
    $temp_str=substr($str,0,1); 
    if(ord($temp_str) > 127){ 
      $i++; 
    if($i<$len){ 
      $new_str[]=substr($str,0,3); 
      $str=substr($str,3); 
      } 
    }else { 
    $new_str[]=substr($str,0,1); 
    $str=substr($str,1); 
    } 
  } 
  return join($new_str); 
}
🎜프로그램을 사용하여 문자 가로채기 예시 method🎜🎜rrreee 🎜🎜관련 학습 권장 사항: 🎜PHP 프로그래밍 입문부터 숙련까지🎜🎜🎜

위 내용은 PHP의 UFT-8 중국어 인코딩이 왜곡되면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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