2017-09-28 3 views
-2

API를 호출하고 UTF로 인코딩 된 문자열을받는 로컬 컴퓨터에서 PHP CLI 스크립트를 실행하고 있습니다. 자,이 문자열은 기본적으로 포르투갈어로 간단한 단어이며 화면 (터미널)에 인쇄 할 때 제대로 볼 수 있습니다. 그러나 다른 컴퓨터에서는 일부 문자가 제대로 표시되지 않습니다. 질문은 다른 머신에서 문자열을 제대로보기 위해 어떤 php.ini 옵션을 설정해야합니까? 나는 PHP.ini를 인코딩에 관련시키지 않고 모든 것이 잘 작동하므로, php cli 애플리케이션에서 UTF를 사용하려면 무엇이 필요합니까?PHP에서 일부 문자가 올바르게 표시되지 않습니다.

편집 : 이것은 터미널 문제가 아니어야합니다. 보다 구체적으로, API는 배열 내부에서 발견되는 문자열 (UTF로 인코딩 됨)을 반환합니다. 그러나 PHP는 어레이 내에서 해당 문자열을 찾을 수 없다는 경고를 다른 시스템에서 발행하고 있습니다. 키가 존재하지 않는다는 오류입니다. 키 또는 표시된 문자열이 제대로 보이지 않습니다. 그렇습니다.

그것은 기본적으로

$stringReturnedFromApi = $apiCall(); 
$this->myArray[$stringReturnedFromApi]; 

는 키가 존재하지 않는 것을 불평 다른, 바로 내 컴퓨터에서 작동하고, 내가 $stringReturnedFromAp을 보았을 때, 그것은 UTF로 인코딩 보이지 않는

+0

다른 기계가 같은 종류의 터미널을 사용하고 있는가? – apokryfos

+0

예, 거의 모든 것이 PHP와 같습니다. – Zed

+0

문제를 설명하기 위해 최소한의 코드를 제공해주십시오. – deceze

답변

0

다른 터미널은 UTF-8 인코딩으로 설정해야합니다. 예를 들어, PuTTY는 어떤 인코딩인지를 말해야합니다. 그렇지 않으면 잘 기억하면 ANSI를 사용할 것입니다.

다른 호스트가 Windows에없는 경우 로케일이 UTF-8인지 확인하십시오. 이것은 오류가 아니라는 측면에 있지 않습니다. 이것은 클라이언트 쪽 인 인코딩입니다.

결과가 웹 페이지에 인쇄되면 문자 집합 인코딩이 UTF8로 설정되어 있는지도 확인하십시오.

+0

질문을 업데이트했습니다. 자세한 내용, 감사합니다. – Zed

+0

코드 예제가 추가되었습니다. – Zed

+0

명시 적으로 서버에서 utf8_encode ("value")를 보내고 있습니까? 아니면 character_encoding을 지정하는 헤더와 함께 "value"를 보내시겠습니까? –

0

저는 이것이 실제로 PHP 문제인지 확신하지 못합니다.

스크립트를 보지 않고는 아무 것도 말할 수 없지만 PHP 스크립트가 실제로 UTF 문자를 올바르게 출력하고 있다고 생각합니다. 터미널이 UTF 인코딩을 이해하지 못하고 문자를 표시 할 수 없기 때문에 이상하게 보입니다.

실제 문제가있는 곳을 확인하는 데 사용하는 터미널 응용 프로그램의 세부 정보가 약간 더 구체적이어야합니다. 나는 당신이 php.ini에서 고칠 수있는 어떤것이라고 생각하지 않는다.

+0

제발 ..... 당신이 _ 추측이라면 대답 섹션을 잘못 사용하는 대신 _guess_를 주석에 넣으십시오. 감사합니다. –

+0

감사합니다. – Zed

+0

코드 예제가 추가 되었으니 다시 한번 확인하십시오. – Zed