문제

ANSI가 지원하지 않는 악센트가있는 문자가 있었기 때문에 ANSI로 인코딩되어서는 안되는 ANSI 인코딩 된 텍스트 파일이 있습니다.차라리 UTF-8로 작업하고 싶습니다.

데이터가 올바르게 디코딩될 수 있습니까? 아니면 트랜스코딩 중에 손실됩니까?

어떤 도구를 사용할 수 있나요?

내가 가지고 있는 샘플은 다음과 같습니다.

ç é

문맥을 보면(café는 카페여야 함) 다음 두 문자여야 함을 알 수 있습니다.

ç é
도움이 되었습니까?

해결책

편집하다:더 복잡한 솔루션에 들어가기 전에 제거할 수 있는 간단한 가능성은 다음과 같습니다.파일을 읽는 텍스트 편집기에서 문자 세트를 utf8로 설정해 보셨나요?이는 누군가가 cp1252라고 설정된 편집기에서 읽고 있는 utf8 파일을 보내는 경우일 수 있습니다.

두 가지 예만 보면 iso-8859-1, iso-8859-15 또는 cp1252 중 하나인 단일 바이트 인코딩 렌즈를 통해 utf8을 읽는 경우입니다.다른 문제 캐릭터의 예를 게시할 수 있다면 그 범위를 더 좁힐 수도 있을 것입니다.

문자를 육안으로 검사하면 오해의 소지가 있을 수 있으므로 기본 바이트도 살펴봐야 합니다.화면에 표시되는 §은 0xa7 또는 0xc2a7일 수 있으며 이에 따라 수행해야 하는 문자 집합 변환 종류가 결정됩니다.

모든 데이터가 정확히 같은 방식으로 왜곡되었다고 가정할 수 있습니까? 즉, 동일한 소스에서 왔으며 동일한 변환 순서를 거쳤습니다. 예를 들어 텍스트에 é가 하나도 없고 항상 é입니다. ㅏ§?그렇다면 일련의 문자 집합 변환을 통해 문제를 해결할 수 있습니다.현재 환경과 사용 중인 데이터베이스에 대해 더 구체적으로 설명할 수 있는 경우 여기 누군가가 적절한 변환을 수행하는 방법을 알려줄 수 있습니다.

그렇지 않고 문제 문자가 데이터의 일부 위치에서만 발생하는 경우 "텍스트에 ç를 넣을 의도가 있는 작성자가 없으므로 볼 때마다"라는 가정에 따라 사례별로 이를 취해야 합니다. ç"로 바꾸세요.후자의 옵션은 더 위험합니다. 첫째, 작성자의 의도에 대한 가정이 틀릴 수 있고, 둘째, 모든 문제 문자를 직접 찾아내야 하기 때문입니다. 시각적으로 검사할 텍스트가 너무 많거나 작성된 경우 불가능할 수 있습니다. 당신에게 낯선 언어나 글쓰기 체계로.

다른 팁

메모장 ++로 다음 단계를 따르십시오

1- 원본 텍스트를 복사하십시오

2- Notepad ++에서 새 파일을 열고 인코딩 변경 -> 원본 텍스트가 따르는 인코딩을 선택하십시오. 때때로 유니 코드 파일이 특정 프로그램에 의해 ANSI로 읽히는 것처럼 인코딩 "ANSI"를 시도하십시오.

3- 붙여 넣기

4- 그런 다음 동일한 메뉴로 다시 이동하여 유니 코드로 변환하려면 다음과 같은 메뉴 :> "UTF-8로 인코딩"( "UTF-8으로 변환")이 읽을 수 있기를 바랍니다.

위의 단계는 대부분의 언어에 적용됩니다. Notepad ++로 붙여 넣기 전에 원래 인코딩을 추측 한 다음 동일한 메뉴를 대체 유니 코드 기반 인코딩으로 변환하여 물건을 읽을 수 있는지 확인하십시오.

대부분의 언어는 2 가지 형태의 인코딩으로 존재합니다. 1- 오래된 레거시 ANSI (ASCII) 양식 (8 비트)은 처음에는 대부분의 컴퓨터에서 사용되었습니다. 8 비트는 256 개의 가능성 만 허용되며, 그중 128 개는 일반 라틴어 및 제어 문자 인 128 개가 PC 언어 설정에 따라 최종 128 비트를 다르게 읽었습니다. 2- 새로운 유니 코드 표준 (최대 32 비트). 현재 알려진 모든 언어와 앞으로 더 많은 언어로. 파일이 유니 코드 인 경우 언어 글꼴이 설치된 모든 PC에서 이해해야합니다. UTF-8조차도 최대 32 비트까지 올라가고 UTF-16 및 UTF-32만큼 광범위합니다. 단지 디스크 공간을 절약하기 위해 라틴 문자로 8 비트를 유지하려고합니다.

ç 및 é와 같은 문자 시퀀스가 ​​표시되면 일반적으로 UTF-8 파일을 ANSI(또는 이와 유사한 형식)로 읽는 프로그램에서 열었다는 의미입니다.다음과 같은 유니코드 문자:

U+00C2 곡절 부호가 있는 라틴어 대문자 A
U+00C3 물결표가 있는 라틴어 대문자 A
U+0082 여기서는 휴식이 허용됩니다
U+0083 여기는 쉴 틈이 없어

UTF-8이 사용하는 가변 바이트 전략 때문에 ANSI 텍스트에 표시되는 경향이 있습니다.이 전략은 아주 잘 설명되어 있습니다. 여기.

이점은 이러한 이상한 문자의 출현으로 인해 잘못된 변환 사례를 상대적으로 쉽게 찾아서 교체할 수 있다는 것입니다.

ANSI는 항상 문자당 1바이트를 사용하므로 간단한 검색 및 바꾸기 작업으로 이 상황을 처리할 수 있다고 생각합니다.또는 다음과 같이 문제가 되는 시퀀스와 원하는 문자 사이의 테이블 매핑을 포함하는 프로그램을 사용하면 더 편리합니다.

“ -> “ #은 큰따옴표로 시작해야 합니다.
?-> ” # 닫는 큰따옴표여야 합니다.

영어로 되어 있다고 가정하면 어떤 특정 텍스트든 상대적으로 적은 수의 다양한 대체 유형을 갖게 됩니다.

도움이 되길 바랍니다.

With vim from command line:

vim -c "set encoding=utf8" -c "set fileencoding=utf8" -c "wq" filename

In sublime text editor, file -> reopen with encoding -> choose the correct encoding.

Generally, the encoding is auto-detected, but if not, you can use the above method.

If you see question marks in the file or if the accents are already lost, going back to utf8 will not help your cause. e.g. if café became cafe - changing encoding alone will not help (and you'll need original data).

Can you paste some text here, that'll help us answer for sure.

And then there is the somewhat older recode program.

There are programs that try to detect the encoding of an file like chardet. Then you could convert it to a different encoding using iconv. But that requires that the original text is still intact and no information is lost (for example by removing accents or whole accented letters).

I found a simple way to auto-detect file encodings - change the file to a text file (on a mac rename the file extension to .txt) and drag it to a Mozilla Firefox window (or File -> Open). Firefox will detect the encoding - you can see what it came up with under View -> Character Encoding.

I changed my file's encoding using TextMate once I knew the correct encoding. File -> Reopen using encoding and choose your encoding. Then File -> Save As and change the encoding to UTF-8 and line endings to LF (or whatever you want)

On OS X Synalyze It! lets you display parts of your file in different encodings (all which are supported by the ICU library). Once you know what's the source encoding you can copy the whole file (bytes) via clipboard and insert into a new document where the target encoding (UTF-8 or whatever you like) is selected.

Very helpful when working with UTF-8 or other Unicode representations is UnicodeChecker

I found this question when searching for a solution to a code page issue i had with Chinese characters, but in the end my problem was just an issue with Windows not displaying them correctly in the UI.

In case anyone else has that same issue, you can fix it simply by changing the local in windows to China and then back again.

I found the solution here:

http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/how-can-i-get-chinesejapanese-characters-to/fdb1f1da-b868-40d1-a4a4-7acadff4aafa?page=2&auth=1

Also upvoted Gabriel's answer as looking at the data in notepad++ was what tipped me off about windows.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top