2016-08-01 2 views
1

javascript에 두 개의 동일한 문자열이 일부 공백이 있습니다. str.charCodeAt(n)을 사용하여 ascii 값을 인쇄했을 때 값이 32와 160으로 표시됩니다. 값을 검색하면 찢어지고 꺾이지 않는 공백으로 표시됩니다. 그래서 아무도이 행동이 무엇인지 설명 할 수 있습니다.깨지는 부분과 줄 바꿈하지 않는 부분의 차이 ascii 문자

+0

  • ASCII and Extended ASCII code charts 당신이 우리에게 샘플을 줄 수 네가 사용한 두 줄 중? – Mistalis

  • +0

    왜 자바 태그가 있습니까? – Blobonat

    +0

    숙지해야 할 점 :'charCodeAt'는 UTF-16 코드 단위를 제공하며, 그 중 하나 또는 두 개는 유니 코드 코드 포인트를 인코딩합니다. ASCII 문자 세트는 공백 문자를 사용하지 않습니다 (JavaScript, Java, .NET, HTML, XML 등을 사용하는 경우에는 괜찮습니다. ASCII를 사용하지 않을 수도 있습니다). –

    답변

    1

    일반 (깨짐) 공간과 깨지지 않는 공간의 차이점은 텍스트 표시 및 조판 소프트웨어가 줄 바꿈하지 않는 공간 대신 ​​자동 줄 바꿈을 삽입해서는 안된다는 것입니다. (비 분리 공간이 앞뒤의 단어를 분리 할 수없는 단어로 결합하는 것과 같습니다.) 대조적으로, 일반 공간은 줄을 끊을 수있는 가능한 장소로 취급됩니다.

    실제로 코드 160은 실제로 일반 (7 비트) ASCII 범위 밖에 있습니다. 160을 비 분리 문자 (또는 NBSP) 문자로 해석하면 Latin1 (ISO8859-1) 문자 집합에서 문자가 나옵니다. (확장 ASCII에서 NBSP 문자에 대한 코드는 255입니다!)

    참고 :

    2

    줄 바꿈하지 않는 공백은 새 줄을 끊지 않는 공백입니다. 비 분리 공간으로 구분 된 두 단어는 서로 붙어서 새 줄로 나눠지지 않습니다.

    다른 한편으로는 공백이 끊어집니다.

    관련 문제