Program Club

메모장 ++를 사용하여 ANSI 인코딩 파일을 UTF-8로 어떻게 변환합니까?

proclub 2020. 11. 30. 20:11
반응형

메모장 ++를 사용하여 ANSI 인코딩 파일을 UTF-8로 어떻게 변환합니까?


웹 사이트가 있고 Firefox에서 jQuery를 사용하여 터키어 문자를 보낼 수 있지만 Internet Explorer에서 터키어 문자를 보내지 않습니다. 메모장에서 소스 파일을 보았는데이 파일의 코드 페이지는 ANSI입니다.

BOM없이 UTF-8로 변환하고 파일을 닫으면 다시 열 때 파일이 다시 ANSI가됩니다.

내 파일을 ANSI에서 UTF-8로 어떻게 변환 할 수 있습니까?


이 부분과 관련하여 :

bom없이 UTF-8로 변환하고 파일을 닫으면 다시 열 때 파일이 다시 ANSI입니다.

가장 쉬운 해결책은 Notepad ++를 올바르게 구성하여 문제를 완전히 방지하는 것입니다.

시도 Settings> - Preferences-> New document-> Encoding-> 선택 UTF-8BOM없이, 체크를 Apply to opened ANSI files.

이렇게하면 열려있는 모든 ANSI 파일이 BOM없이 UTF-8로 처리됩니다.

무슨 일이 일어나고 있는지 설명하려면이 답변 아래의 주석을 읽으십시오.

유니 코드와 UTF-8에 대해 완전히 배우려면 Joel Spolsky 의이 훌륭한 기사읽으십시오 .


아마도 이것은 당신이 필요로하는 대답이 아닐 수도 있지만 비슷한 문제가 발생하여 여기에 넣기로 결정했습니다.

Notepad ++를 통해 500 개의 xml 파일을 UTF8로 변환해야했습니다. 왜 Notepad ++인가? "Encode in UTF8"옵션을 사용했을 때 (많은 다른 변환기가 동일한 논리를 사용함) 모든 특수 문자가 엉망이 되었기 때문에 "UTF8로 변환"을 명시 적으로 사용해야했습니다.


특수 문자 (예 : 분음 부호)를 엉망으로 만들지 않고 Notepad ++를 통해 여러 파일을 변환하는 몇 가지 간단한 단계입니다.

  1. Notepad ++를 실행 한 다음 메뉴 Plugins-> Plugin Manager-> Show Plugin Manager 를 엽니 다.
  2. Python Script를 설치합니다 . 플러그인이 설치되면 애플리케이션을 다시 시작하십시오.
  3. 메뉴 플러그인-> Python 스크립트-> 새 스크립트를 선택합니다 .
  4. 이름을 선택하고 다음 코드를 붙여 넣습니다.

convertToUTF8.py

import os
import sys
from Npp import notepad # import it first!

filePathSrc="C:\\Users\\" # Path to the folder with files to convert
for root, dirs, files in os.walk(filePathSrc):
    for fn in files: 
        if fn[-4:] == '.xml': # Specify type of the files
            notepad.open(root + "\\" + fn)      
            notepad.runMenuCommand("Encoding", "Convert to UTF-8")
            # notepad.save()
            # if you try to save/replace the file, an annoying confirmation window would popup.
            notepad.saveAs("{}{}".format(fn[:-4], '_utf8.xml')) 
            notepad.close()

결국 스크립트를 실행하십시오.


파일에 비 ASCII 문자 (코드 포인트 128 이상)가없는 경우 BOM이없는 UTF-8은 ASCII와 동일합니다. 즉, Notepad ++는 잘못 추측합니다.

해야 할 일은 AJAX 응답을 제공 할 때 문자 인코딩을 지정하는 것입니다. 예를 들어 PHP를 사용하면 다음을 수행합니다.

header('Content-Type: application/json; charset=utf-8');

중요한 부분은 모든 JS 응답 과 함께 문자 집합을 지정하는 것입니다. 그렇지 않으면 IE가 사용자의 시스템 기본 인코딩으로 돌아갑니다. 이는 대부분의 경우 잘못된 것입니다.

참고 URL : https://stackoverflow.com/questions/7256049/how-do-i-convert-an-ansi-encoded-file-to-utf-8-with-notepad

반응형