2014-06-30 2 views
0

ODBC를 통해 Filemaker DB에 연결하고 일부 데이터에 é 또는 è 같은 악센트가 있습니다. 이러한 문자는 "?"로 나타납니다. 지금은 조금 문제가 있습니다. 데이터베이스에서 프랑스어 악센트를 표시 할 때의 문제

$connection = odbc_connect($dsn, $username, $password, SQL_CUR_USE_ODBC); 

$sql = "SELECT * FROM Table1"; 

$res = odbc_exec($connection,$sql); 

while ($row = odbc_fetch_array($res)){ 

$x++; 


    $values= ($x . ": Customer:". $row['Customer'] . "\n"); 

    print($values); 

} 

odbc_free_result($res); 
odbc_close($connection); 

내가 같은 헤더에 '문자셋 = UTF-8'을 추가하는 등 몇 가지를 시도했지만 아무것도 지금까지 작동하는 것 같다 없습니다 : 여기처럼 내 코드는 모습입니다. 나는 utf-8을 어딘가에 포함 할 필요가 있다고 확신한다. 온라인에서의 코드와 비슷한 예제를 찾지 못했다. 감사!

+1

. 그건 PHP -> 오라클 연결, 오라클 내부 테이블/필드, 오라클 -> PHP 연결, PHP에서 클라이언트로 출력 등을 의미합니다 ... –

+0

실제로 삭제하지 않고 질문을 제거하면서 마지막 편집을 롤백했습니다. 질문. 이런 식으로 자신의 질문을 자르지 마십시오. 그것은 1) 타인에게 도움이되지 않으며 2) 다운 폰트로 이어질 수 있습니다. 질문을 완전히 삭제하거나 그대로 두십시오. –

답변

0

올바른 인코딩을 사용하여 연결해야합니다.

SELECT hex(CustomerCustomer) FROM Table1; 

일치 대상 인코딩에 문제가되는 문자의 16 진수 코드, 대부분 latin1UTF-8 다음과 같은 쿼리 올바른 인코딩을 확인할 수 있습니다. 16 진수 코드를 식별 할 수 없으면 여기에 출력을 붙여 넣으십시오. 그러면 식별 해 드리겠습니다.

0

ODBC는 WIN1252라는 인코딩 유형을 사용합니다.

하면보십시오 :이 방법으로 UTF8로 win1252에서 반대를 어떻게 사용했습니다

mb_convert_encoding($value,'UTF-8','Windows-1252'); 

해야하기 위해 노력하고 .. 나를

을 알려 그래서 그것을 시도 : 사용을 기능을 mb_detect_encoding(). 함수가 존재하지 않으면이 코드를 시도하십시오.

if (!function_exists('mb_detect_encoding')) { 


function mb_detect_encoding ($string, $enc=null, $ret=null) { 

    static $enclist = array(
     'UTF-8', 'ASCII', 
     'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4', 'ISO-8859-5', 
     'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8', 'ISO-8859-9', 'ISO-8859-10', 
     'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'ISO-8859-16', 
     'Windows-1251', 'Windows-1252', 'Windows-1254', 
     ); 

    $result = false; 

    foreach ($enclist as $item) { 
     $sample = iconv($item, $item, $string); 
     if (md5($sample) == md5($string)) { 
      if ($ret === NULL) { $result = $item; } else { $result = true; } 
      break; 
     } 
    } 

return $result; 
} 

출처 : 는 전체 렌더링 체인 같은 캐릭터 세트를 사용하고 있는지 확인해야합니다 PHP

+0

나는 그것을 시험해 보았다. 그리고 나는 같은 문제를 얻는다. – Exn

관련 문제