8진수 302 240은 함께 잘림 방지 공백에 해당하는 것 같습니다.

8진수 302 240은 함께 잘림 방지 공백에 해당하는 것 같습니다.

텍스트 파일의 특정 줄(예: 1123번 줄, 아래 참조)을 살펴보면 잘리지 않는 공백이 있는 것 같지만 확실하지 않습니다.

$ cat myfile.csv | sed -n 1123p | cut -f2
Lisztes feher

$ cat myfile.csv | sed -n 1123p | cut -f2 | od -An -c -b
   L   i   s   z   t   e   s 302 240   f   e   h   e   r  \n
 114 151 163 172 164 145 163 302 240 146 145 150 145 162 012

하지만, 그ASCII 코드잘림 방지 공백의 8진수 표현은 240입니다. 그렇다면 302는 무엇에 해당합니까? 이 파일에 특별한 것이 있나요?

이해를 돕기 위해 이런 질문을 드립니다. 나는 이미 sed다음을 사용하여 문제를 해결하는 방법을 알고 있습니다 .답변:

$ cat myfile.csv | sed -n 1123p | cut -f2 | sed 's/\xC2\xA0/ /g' | od -An -c -b
   L   i   s   z   t   e   s       f   e   h   e   r  \n
 114 151 163 172 164 145 163 040 146 145 150 145 162 012

자세한 내용은 원본 파일이 .xlsx(뛰어나다) 형식. 내 컴퓨터가 실행될 때쉬 벤투, 열어본다무료 사무실계산(v5.1). 그런 다음 "문자 세트 = 유니코드(UTF-8)"를 사용하여 "텍스트 CSV"로 저장하고 탭을 필드 구분 기호로 사용합니다.

$ file myfile.csv
myfile.csv: UTF-8 Unicode text

답변1

U+00A0 유니코드 문자의 UTF-8 인코딩입니다.

$ unicode U+00A0
U+00A0 NO-BREAK SPACE
UTF-8: c2 a0 UTF-16BE: 00a0 Decimal:   Octal: \0240
 
Category: Zs (Separator, Space)
Bidi: CS (Common Number Separator)
Decomposition: <noBreak> 0020

$ locale charmap
UTF-8
$ printf '\ua0' | od -to1
0000000 302 240
0000002

UTF-8은 문자당 바이트 수가 가변적인 유니코드 인코딩입니다. 문자 집합으로서의 유니코드는 iso8859-1(latin1이라고도 함)의 상위 집합이며, 이 자체는 ASCII의 상위 집합입니다.

iso8859-1에서는 줄바꿈하지 않는 공백 문자(iso8859-1의 코드 포인트 0xa0, 유니코드의 코드 포인트와 유사)는 0xa0 바이트로 표시되는 반면, UTF-8에서는 코드 포인트 0~127만 표시됩니다. 1바이트(이로 인해 UTF-8은 ASCII의 상위 집합이 됩니다. 즉, ASCII 파일도 UTF-8 파일입니다.)

128 이상의 코드 포인트는 인코딩하는 데 문자당 더 많은 바이트를 사용합니다. 바라보다위키피디아UTF-8 인코딩 알고리즘에 대한 자세한 정보입니다.

답변2

Alt-Gr302 240은 + 의 조합입니다 space.

프랑스어 키보드에서는 a 뒤에 공백을 입력하려고 할 때 |+를 원할 때 Alt-gr++를 입력하면 | Alt-gr오류가 발생하기 쉽습니다.spaceAlt-gr| space

관련 정보