2016-11-06 2 views
0

mysql 데이터베이스가 있고 "user_job"이라는 테이블이 있습니다. "카테고리"란에는 "Alpha - Αλφα"라는 문구가 저장되어 있습니다. 내 코드입니다 : 나는 그것을 실행할 때은 영어와 그리스어로 된 문구를 mysql 데이터베이스에서 가져올 수 없습니다.

<?php 
$e = mysql_query("select `category` from `user_job` where `category`='$category' "); 

$a = mysql_num_rows($e); 

?> 

그것은 나에게 0 행을 반환합니다. 내가 "Αλφα"그리스 문자 에서이 그리스 단어를 제거하면 작동하고 날 1 행을 반환합니다. 여기서 문제는 무엇이며 어떻게 수정해야합니까? 내 테이블이 "utf8_general_ci"로 설정되었습니다.

+0

'utf8_general_ci'에는 Αλφα [http://collation-charts.org/mysql60/mysql604.utf8_general_ci.european.html]의 모든 문자가 포함되어 있으므로 인코딩되지 않습니다. –

답변

0

인코딩 불일치로 보입니다. 데이터베이스의 인코딩으로 변환해야합니다.

그리스 알파벳은 일반적으로 ISO-8859-7로 인코딩됩니다. 이 실제로 당신의 입력의 경우 경우에, 당신은과 같이 변환 할 수 있습니다 :

  • 의 iconv : http://php.net/iconv
  • 국제 : http://php.net/intl

    <?php 
    $category = iconv('ISO-8859-7', 'UTF-8', $category); 
    ?> 
    

    PHP는 인코딩 사이의 변환을 많은 유용한 기능을 제공합니다

둘 다 기본 PHP 배포판과 함께 제공됩니다.

+0

여전히 작동하지 않습니다. – 33528

+0

입력 내용의 인코딩이 올바른지 확인하십시오. 이상적인 세상에서는 모든 것이 UTF-8이어야하지만 슬프게도 우리는 그러한 환경에 살지 않습니다. = ( PHP가 포함 된 mbstring 확장은 입력 인코딩을 감지 할 수있는 기능을 제공합니다. http://php.net/mb_detect_encoding – Kalle

관련 문제