그 자체는 ASCII 파일이지만 UTF-8 코드를 나타내는 8진수 이스케이프 시퀀스를 포함하는 텍스트 파일이 있습니다.
\350\207\252\345\212\250\346\216
이러한 ASCII 파일을 실제 utf-8로 인코딩된 텍스트 파일로 변환할 수 있는 프로그램이나 명령이 있습니까?
- 그런데,이 웹사이트"온라인 ASCII(유니코드 이스케이프)에서 유니코드(UTF-8)로의 변환기 도구"이며,이 웹사이트"온라인 유니코드(UTF-8)를 ASCII(Unicode Escaped)로 변환하는 도구"입니다. 내 질문에 그들이 전환할 것인가? 그렇지 않다면 그들은 어떤 종류의 전환을 하게 될까요?
답변1
쉘 변수, dash, mksh 또는 bash에 이러한 이스케이프 시퀀스가 있는 경우:
printf %b "$string_with_backslash_escapes"
이는 POSIX가 아닙니다. 지정자는 POSIX이지만 %b
각 백슬래시 뒤에 하나씩 필요합니다. 0
이는 또한 다른 백슬래시 이스케이프( \n
개행, \t
탭 등) 에 대해서도 설명합니다.
이것은 8진수 이스케이프 시퀀스만 변환하는 Perl의 한 줄짜리 코드입니다.
perl -pe 's[\\(?:([0-7]{1,3})|(.))] [defined($1) ? chr(oct($1)) : $2]eg'
http://www.rapidmonkey.com/unicodeconverter/reverse.jsp8진수 값을 Latin-1 문자로 해석하는데 페이지에서 왜 유니코드와 UTF-8을 언급하는지 모르겠습니다. 나는 무엇을 모른다http://www.rapidmonkey.com/unicodeconverter/advanced.jsp하다.
답변2
만 사용불다:
3.1.2.4 ANSI-C 참조
이 형태의 단어는
$'string'
특별히 처리됩니다. 단어는 다음과 같이 확장됩니다. 끈, ANSI C 표준에 지정된 대로 백슬래시 이스케이프 문자를 바꿉니다. 백슬래시 이스케이프 시퀀스가 있는 경우 다음과 같이 디코딩됩니다.…
<i>nnn
값이 8진수 값인 8비트 문자에 에(1~3자리)
UTF-8 터미널의 데모:
$ echo $'\350\207\252\345\212\250\346\216'
自动?
시퀀스의 형식이 잘못되었기 때문에 마지막 문자가 물음표로 나타납니다. 필요한 3바이트 중 2바이트만 존재합니다.
귀하가 링크한 웹사이트에서 수행되는 작업은 다음과 같습니다.RFC 5137인코딩 디코딩.
"ASCII(Unicode Escaped)" 텍스트 영역에 입력 하면 유니코드 문자 로 출력 \u81ea\u52a8
됩니다.自动
自
U+81개(UTF-8 표현은 16진수로 e8 87 aa, 8진수로 350 207 252임) 动
유니코드 문자입니다.U+52A8(UTF-8 표현은 16진수로 e5 8a a8, 8진수로 345 212 250입니다.)
답변3
대화형 셸의 Python은 이 중 적어도 일부를 수행할 수 있습니다. 그러나 위의 순서가 깨진 것 같습니다.
wilmer@ruby:~$ 파이썬 Python 2.7.10(기본값, 2015-07-1, 10:54:53) [GCC 4.9.2] linux2 자세한 내용을 보려면 도움말, 저작권, 크레딧 또는 라이센스를 입력하세요. >>> 유니코드("\350\207\252\345\212\250\346\216", "utf-8") 역추적(가장 최근 호출 마지막): 파일 "", 1행, at UnicodeDecodeError: 'utf8' 코덱은 위치 6-7의 바이트를 디코딩할 수 없습니다: 예기치 않은 데이터 끝 >>> 유니코드("\350\207\252\345\212\250", "utf-8") 당신은'\u81ea\u52a8' >>> 유니코드 인쇄("\350\207\252\345\212\250", "utf-8") 자동적 인
답변4
일부 소프트웨어를 사용하는 것만으로도 충분할 수 있다고 덧붙이고 싶습니다.선택, 복사, 붙여넣기이스케이프된 텍스트입니다. 예를 들어 Wireshark는 UTF-8 텍스트를 8진수 이스케이프 바이트 시퀀스로 표시하지만 이를 Gedit에 복사하여 붙여 넣으면 \341\203\231과 같은 일반 텍스트가 კ가 됩니다.