JavaScript 파일을 압축하고 있는데 압축기가 파일에 
문자가 있다고 불평 합니다.
이러한 문자를 검색하고 제거하려면 어떻게해야합니까?
JavaScript 파일을 압축하고 있는데 압축기가 파일에 
문자가 있다고 불평 합니다.
이러한 문자를 검색하고 제거하려면 어떻게해야합니까?
U+FEFF
은 BOM에 사용되는 유니 코드 코드 포인트이지만 BOM 자체는 해당 코드 포인트가 인코딩되는 방법입니다 (UTF-8 : 0xEF 0xBB 0xBF
, UTF-16LE : 0xFF 0xFE
, UTF-16BE : 0xFE 0xFF
등). 따라서 문제의 파일은 UTF-8로 인코딩되어 있으며 압축기는이를 실제 유니 코드 코드 포인트로 디코딩 할 때 감지합니다.
답변:
perl -pi~ -CSD -e 's/^\x{fffe}//' file1.js path/to/file2.js
파일에 다른 utf-8이 있으면 도구가 중단 될 것이라고 생각하지만 그렇지 않은 경우이 해결 방법이 도움이 될 수 있습니다. (테스트되지 않은 ...)
편집 : -CSD
tchrist의 의견 에 따라 옵션을 추가했습니다 .
-CSD
스위치를 사용하거나 PERL_UNICODE
envariable을로 설정 하여 실행해야합니다 SD
.
perl -CSD -pe 's/^\x{feff}//' file.csv
, <fffe>에서 <feff> 로의 변경에 유의하십시오.
vim을 사용하여 쉽게 제거 할 수 있습니다 . 단계는 다음과 같습니다.
1) 터미널에서 vim을 사용하여 파일을 엽니 다.
vim file_name
2) 모든 BOM 문자 제거 :
:set nobomb
3) 파일 저장 :
:wq
이러한 문자를 제거하는 또 다른 방법 -Vim 사용 :
vim -b 파일 이름
이제 "숨겨진"문자가 표시되고 ( <feff>
) 제거 할 수 있습니다.
이전 답변에 감사드립니다. 다음과 같은 경우를 대비하여 sed (1) 변형이 있습니다.
sed '1s/^\xEF\xBB\xBF//'
$'\xEF\xBB\xBF//'
은 특히 Mac 또는 OSX 기능이 아닌 Bash 기능입니다. 이 구조를 사용하면 Bash는 명령 줄을에 전달하기 전에 이스케이프 시퀀스를 실제 바이트로 구문 분석합니다 sed
. sed
변형 에 따라 작동하거나 작동하지 않을 수 있습니다 (OSX 사용자가 즉시 작동해야한다는 것을 아는 것이 유용하지만).
'file'명령은 BOM이 있는지 여부를 보여줍니다.
예 : 'file myfile.xml'은 "XML 1.0 문서, UTF-8 유니 코드 (BOM 포함) 텍스트, 매우 긴 줄, CRLF 줄 종결 자 포함"을 표시합니다.
dos2unix는 BOM을 제거합니다.
에서 숭고한 텍스트 당신은 설치할 수 있습니다 형광펜 패키지를 다음 사용자 설정에서 정규 표현식을 사용자 정의 할 수 있습니다.
여기 \uFEFF
에 highlighter_regex
속성 끝에 추가 했습니다.
{
"highlighter_enabled": true,
"highlighter_regex": "(\t+ +)|( +\t+)|[\u2026\u2018\u2019\u201c\u201d\u2013\u2014\uFEFF]|[\t ]+$",
"highlighter_scope_name": "invalid",
"highlighter_max_file_size": 1048576,
"highlighter_delay": 3000
}
기본 패키지 설정을 덮어 쓰려면 여기에 파일을 배치하십시오.
~ / .config / sublime-text-3 / Packages / User / highlighter.sublime-settings
<U+FEFF>
즉,<0xEF,0xBB,0xBF>
당신이 제목을 변경해야하므로, 즉 UTF8 파일의 BOM입니다. 어떻게 제거 하시겠습니까? 마법의 요정들? 명령 줄 도구로? 하나씩 편집하여? Notepad ++는 BOM없이 인코딩을 UTF8로 변경할 수 있습니다. 예를 들어 "strip BOM utf8"을 5 초 동안 검색하여 Linux 용으로 찾았습니다. ueber.net/who/mjl/projects/bomstrip