2013-08-20 2 views
1

PHP가 아닌 파일에 비 ASCII 코드를 쓰는 데 문제가 있습니다. 예를 들어비 ASCII 코드를 파일로 출력

나는 내가 ¶ 문자를 얻을 내 키보드에 ALT에게 + 20을 누르면.

그러나 파일에 chr(20)을 쓸 때 메모장을 통해 파일을 열면 ++로 읽히거나 .csv로 쓰고 엑셀로 열면? 광장으로 둘러싸인.

+0

다른 응용 프로그램에서는 이러한 제어 문자를 올바르게 해석하지만 다른 문자가 표시 될 수 있습니다. 차이점은 응용 프로그램뿐만 아니라 사용하고있는 글꼴도 다를 수 있습니다. – jeff

+0

해결하려는 문제는 무엇입니까? – jeff

+0

'Chr (20)'은 ASCII로 된 장치 제어 4'(DC4)'입니다. – bansi

답변

3

주로 운영 체제의 기능을 오해합니다. 그 키보드 콤보를 눌러 주석으로 (ALT에게 + 숫자 키패드20)는 운영 시스템의 문서에서 US-ASCII 문자 진수 (20)를 입력하지 않습니다

하면 첫 번째 숫자 당신 type은 1에서 9 사이의 임의의 수이고,이 값은 시스템의 OEM 코드 페이지에서 코드 포인트로 인식됩니다. 결과는 제어판의 국가 및 언어 옵션에 지정된 Windows 시스템 언어에 따라 다릅니다. 예를 들어, 시스템 언어가 영어 (미국) 인 경우 코드 페이지는 437 (MS-DOS 라틴 아메리카)이므로 Alt 키를 누른 상태에서 숫자 키패드에서 163을 입력하면 ú (U + 00FA, 라틴 소문자 U : 예음). 시스템 언어가 그리스어 인 경우 (OEM 코드 페이지 737 MS-DOS 그리스어), 동일한 시퀀스는 그리스 소문자 MU (U + 03BC)를 생성합니다.

그래서 당신이 찾고있는 코드 포인트는 PilcrowWikipedia이며, 유니 코드에서이 Unicode Character 'PILCROW SIGN' (U+00B6)입니다.

그래서 출력 할 곳은 필요한 대상 파일 문자 인코딩을 찾아서 해당 인코딩을 올바른 인코딩으로 인코딩해야합니다. 그게 전부입니다. 마술은 더 이상 없습니다.

+1

에 올리면 작동합니다. 고맙습니다. – user2613707

+1

+1 좋은 설명 – bansi

0

Jeff가 말한 것처럼 제어 문자 (ASCII 코드 < 32)는 항상 다른 방식으로 해석됩니다. 단락 기호를 표시하려면 대상 파일의 문자 세트에 따라 chr(182) 또는 utf8_encode(chr(182)) 중 하나를 보내보십시오.

+0

(아스키 코드 <32)라고 말하고, 아스키 코드> 32를 사용하면 어떻게 될까? 나는 여전히 같은 문제가 있습니까? – user2613707

+0

ord !!! 당신은 chr()가 필요합니다. – bansi

+0

chr()은 – user2613707