2014-04-14 5 views
0

.csv 테이블을 html으로 변환하는 부분이있는 페이지가 있습니다. 그러나 악센트 부호가있는 문자에 문제가 있습니다. 페이지가csv to php : 악센트 부호가있는 문자?

meta http-equiv="Content-Type" content="text/html; charset=utf-8" 

로 설정되고 csv 파일이 utf-8으로 인코딩 된 경우 실제로, 이들도 표시되지 않습니다.

PHP로 처리되지 않은 다른 부분은 아무런 문제없이 악센트 부호가있는 글자를 보여줍니다. 변환 할 PHP 문자열을 추가해야합니까?

당신이 시도 할 수

스테파노

+0

는 문자 악센트없이 보이는가, 또는 전혀? – jboneca

+0

csv에 악센트 부호가있는 문자가 들어있는 예제 행을 줄 수 있습니까? + 그것을 파싱하는 코드? – hek2mgl

답변

0

, 정말 고마워요, 당신의 문제가 해결되었는지 알려 :

$string = (isUtf8($string))? $string : utf8_encode($string); 

function isUtf8 ($string) 
{ 
    //regex modified from http://www.w3.org/International/questions/qa-forms-utf-8.en.php 
    return preg_match('%^(?: 
      [\x09\x0A\x0D\x20-\x7E]   # ASCII 
     | [\xC2-\xDF][\x80-\xBF]   # non-overlong 2-byte 
     | \xE0[\xA0-\xBF][\x80-\xBF]  # excluding overlongs 
     | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte 
     | \xED[\x80-\x9F][\x80-\xBF]  # excluding surrogates 
     | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 
     | [\xF1-\xF3][\x80-\xBF]{3}   # planes 4-15 
     | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 
    )*$%xs', $string); 
} 
+1

그 의미는 무엇입니까? 파일이 utf8 또는 iso-8859-1로 인코딩되었는지 어떻게 확인할 수 있습니까? 그걸 어딘가에서 복사하고 여기에 삽입 했습니까? – hek2mgl

+0

이것은 동일한 문제를 해결하는 첫 번째 단계입니다. [w3.org] (http://www.w3.org/International/questions/qa-forms-utf-8.en.php) – Ikan

+0

을 볼 수 있습니다. 그렇다면이 정보의 출처를 대답. 그러나 내가 지적하고자했던 주된 문제는 여기에서'utf8_encode()'를 사용하고 있다는 사실이다. 'utf8_encode()'는 iso-8859-1에서 utf8로 트랜스 코딩 할 때 가능합니다. 임의의 인코딩을 사용하여 문자열을 utf8로 트랜스 코드하기 위해'utf8_encode()'를 사용할 수 없다는 것을 의미합니다. – hek2mgl

0

당신은 다음과 같은 PHP의 모든 수익을 넣을 수 있습니다 함수 :

string utf8_encode (string $data) 

모든 텍스트를 문제없이 포함 할 수 있습니다.

글꼴 : http://www.php.net/manual/en/function.utf8-encode.php

+0

아니요, 할 수 없습니다. 데이터가 손상 될 가능성이 있습니다. * 링크 된 문서를 읽으십시오. – hek2mgl

+0

...'utf8_encode()'는 iso-8859-1에서 utf8로 코드 변환하는 데 사용할 수 없습니다. (그리고 그 이상) – hek2mgl