2010-11-30 3 views
0

먼저 나쁜 영어로 사과하고 싶습니다.PHP에서의 키릴 문자 오류

내 문제는 지금. SQL Server 데이터베이스가 있고 PHP로 데이터를 가져 오려고합니다. 데이터베이스가 localhost에 없기 때문에 선택 쿼리 만 실행할 수 있습니다. 이 데이터베이스에서 데이터를 가져와야하며 데이터는 키릴 문자로되어 있습니다. 이것은 내 문제입니다. mssql_query을 실행하고 데이터를 받으면 키릴 기호는 ????으로 반환됩니다.

문자를 iconvmb_convert_string으로 변환하려고 시도했지만 성공하지 못했습니다.

아무도 비슷한 문제가 있습니까? 어떻게 해결 했습니까?

답변

0

웹 서버와 클라이언트 컴퓨터에 키릴 어 언어 팩을 설치 했습니까? SQL Server에 직접 연결할 수있는 경우에는 BCP 명령 줄 유틸리티를 사용하여 SQL Server에서 데이터를 내보낼 수 있습니다.

당신이 가고있는 최종 목표는 무엇입니까?

0

반환 된 문자가 실제로 물음표 인 경우 문제는 데이터를 잘못 가져온 DB 끝에서 발생한 것일 수 있습니다. 이 경우에는 할 수있는 일이 거의 없을 수 있습니다.

반환되는 문자가 물음표로 표시되는 경우 문자열에서 bin2hex을 사용하여 실제 바이트를 확인한 다음 수신 한 인코딩을 확인하는 데 사용하십시오. iconv에 올바른 인코딩을 알려야합니다. 그렇지 않으면 "쓰레기통, 쓰레기통"입니다.

+0

나는 iconv (mb_detect_encoding ($ d [ 'catname']), 'utf-8', $ d [ 'catname'], mb_convert_encoding ($ d [ 'catname'], 'utf-8', mb_detect_encoding ($ d [ 'catname'])) 그리고 echo $ d [ 'catname'], 나는 그냥 가지고 ???? bin2hex ($ d [ 'catname'])를 시도하면 3f3f3f3f3f가됩니다. –

+1

원래 문자열에 3F 바이트가 표시되는 경우 이미 변환을 수행하기에는 너무 늦었습니다. 데이터가 이미 손실되었습니다. – borrible

관련 문제