[ascii] 일반 텍스트에서 가장 적게 사용 된 구분 문자 <ASCII 128

당신을 놀라게 할 코딩 이유 때문에 (말하기에는 너무 부끄럽습니다) 여러 텍스트 항목을 단일 문자열에 저장해야합니다.

문자를 사용하여 구분하겠습니다.

이를 위해 어떤 문자를 사용하는 것이 가장 좋습니까? 즉, 텍스트에 나타날 가능성이 가장 적은 문자는 무엇입니까? 로케일 문제를 방지하려면 인쇄 가능해야하며 ASCII에서 128 미만이어야합니다.



답변

당황스러운 이유로 CSV를 사용할 수 없다고 가정하면 데이터를 사용한다고 말하고 싶습니다. 샘플 데이터를 가져와 각 값 0-127에 대해 간단한 문자 수를 계산합니다. 발생하지 않는 것 중 하나를 선택하십시오. 선택의 여지가 너무 많으면 더 큰 데이터 세트를 얻으십시오. 글을 쓰는 데 많은 시간이 걸리지 않으며 가장 적합한 답변을 얻을 수 있습니다.

문제 영역에 따라 대답이 달라 지므로 | (파이프)는 셸 스크립트에서 일반적이고 ^는 수학 공식에서 일반적이며 대부분의 다른 문자에서도 마찬가지입니다.

나는 개인적으로 내가 갈 것이라고 생각한다 | (파이프) 선택권이 주어지면 실제 데이터를 사용하는 것이 가장 안전합니다.

그리고 무엇을하든 탈출 계획을 세웠는지 확인하십시오!


답변

“Unit Separator”ASCII 코드 “US”를 선택합니다 : ASCII 31 (0x1F)

예전에는 대부분의 작업이 무작위 액세스없이 연속적으로 수행되었습니다. 이것은 몇 가지 제어 코드가 ASCII에 포함되었음을 의미합니다.

ASCII 28 (0x1C) File Separator - Used to indicate separation between files on a data input stream.
ASCII 29 (0x1D) Group Separator - Used to indicate separation between tables on a data input stream (called groups back then).
ASCII 30 (0x1E) Record Separator - Used to indicate separation between records within a table (within a group).  These roughly map to a tuple in modern nomenclature.
ASCII 31 (0x1F) Unit Separator - Used to indicate separation between units within a record.  The roughly map to fields in modern nomenclature.

Unit Separator는 ASCII 형식이며이를 표시하기위한 유니 코드 지원 (일반적으로 동일한 글리프의 “us”)이 있지만 많은 글꼴에서 표시하지 않습니다.

표시해야하는 경우 필드로 구문 분석 된 후 응용 프로그램에 표시하는 것이 좋습니다.


답변

아마 | 또는 ^ 또는 ~ 두 문자를 결합 할 수도 있습니다.


답변

다른 언어를 사용하는 경우이 기호 : ¬

최고로 입증되었습니다. 그러나 나는 여전히 테스트 중입니다.


답변

“인쇄 가능”이라고 말했지만 탭 (0x09) 또는 용지 공급 (0x0c)과 같은 문자를 포함 할 수 있습니다. 쉼표가 때때로 텍스트에 나타날 수 있기 때문에 나는 거의 항상 쉼표 대신 탭을 선택합니다.

(흥미롭게도 ascii 테이블 에는 그룹, 레코드 및 단위 구분 기호에 대해 GS (0x1D), RS (0x1E) 및 US (0x1F) 문자가 있습니다.

“인쇄 가능”이란 사용자가 인식하고 쉽게 입력 할 수있는 문자를 의미하는 경우 파이프 | 기호 먼저, 몇 가지 다른 이상한 문자 ( @또는 ~또는 ^또는 또는 \여기에 입력 할 수없는 백틱)를 가능성으로 사용합니다. 이러한 문자 +=!$%&*()-'":;<>,.?/는 사용자 입력에서 발생할 가능성이 더 높은 것처럼 보입니다. 밑줄 _과 해시 #{}[]내가 모르는 괄호에 관해서는 .


답변

CSV 스타일 형식을 사용하는 것은 어떻습니까? 문자는 표준 CSV 형식으로 이스케이프 될 수 있으며 이미 많은 파서가 작성되어 있습니다.


답변

파이프 기호를 사용할 수 있습니까? 일반적으로 쉼표 또는 탭으로 구분 된 문자열 다음으로 가장 일반적인 구분 기호입니다. 대부분의 텍스트에 파이프가 포함될 가능성은 거의 없으며 ord ( ‘|’)는 나를 위해 124를 반환하므로 요구 사항에 맞는 것 같습니다.