리터럴 문자열이 \r\n
인 텍스트 파일이 있습니다. 나는 이것을 실제 줄 바꿈 (\ n)으로 바꾸고 싶다.문제점 리터럴 문자열 바꾸기 r n PHP에서 줄 바꿈 사용하기
내가 정규식 /\\r\\n/
(나는 그것을 Reggy에서 테스트했습니다)과 일치해야한다는 것을 알고 있지만 PHP에서 작동하도록 할 수 없습니다.
나는 다음과 같은 변화를 시도 : 난 그냥 백 슬래시를 교체하려고하면
preg_replace("/\\\\r\\\\n/", "\n", $line);
preg_replace("/\\\\[r]\\\\[n]/", "\n", $line);
preg_replace("/[\\\\][r][\\\\][n]/", "\n", $line);
preg_replace("/[\\\\]r[\\\\]n/", "\n", $line);
, 그것은 제대로 작동합니다. r을 추가하자 마자 일치하는 것이 없습니다.
읽고있는 파일은 UTF-16으로 인코딩되어 있습니다.
은 편집 :
나는 이미 str_replace()
를 사용하여 시도했다.
이제이 문제는 파일의 문자 인코딩이라고 생각합니다. 나는 다음을 시도했고 작동했다 :
$testString = "\\r\\n";
echo preg_replace("/\\\\r\\\\n/", "\n", $testString);
그러나 내 파일에서 읽는 라인에서는 작동하지 않는다. 자신을 저장
완벽하게 작동했습니다. 감사! 또한, UTF-16의 바이트 값을 어디에서 얻을 수 있는지 말해 줄 수 있습니까? 이전에 검색 할 때 찾지 못했습니다. – Katfish
서로 게이트 쌍을 무시하면 UTF-16은'U + abcd'를'\ xab \ xcd'의 2 바이트로 인코딩합니다. 코드는 백 슬래시 (x5c), 'r'(x72) 및 'n'(x6e)의 ASCII 바이트입니다. 0x0a는 당신이 그들을 대체하고 싶은 개행 문자입니다. – Cal