본문 바로가기
프로그래밍

유니티(Unity) TextMeshPro input에서 입력받은 text가 뭔가 이상함

by bantomak 2024. 9. 11.
반응형

TMPro input으로 입력받은 text에 대한 인증이 실패함

text는 육안으로 봤을때는 이상이 없지만 보이지 않는 문자가 마지막에 추가되어 있었다.

.Trim() 함수로 공백을 제거했지만 해당 공백은 제거되지 않았다.

 

 

C# Trim() 메서드에 대해서

String.Trim()문자열 앞뒤에 공백을 제거한 문자열을 반환한다.(Trims the whitespace from both ends of the string.  Whitespace is defined by char.IsWhiteSpace.) String.Trim(char)문자열 앞뒤에 지정된 문자(char)를 제거한 문

jettstream.tistory.com

확인 결과

TMPro input으로 받아온 text 안에 눈에 보이지 않는 구분자가 숨어 있었다.

Zero Width Space라고 불리는 폭이 없는 공백이다.

 

User34264

User34264​

 

위의 두 문자열은 같지 않다.

문자열 마지막에 폭없는 공백이 숨어있음

Zero Width Space란?

  • 제로 폭 공간, 혹은 폭 없는 공백
  • 컴퓨터의 조판에 사용되는 비표시 문자
  • 문자 처리 시스템에 대해 단어의 단락을 나타내는데 사용
  • 즉, 공백으로 보이지 않지만 문자열을 분리하는데 사용하는 특수한 문자

문자 코드

  • 유니코드 : U+200B
  • HTML : ​
  • TeX : \hskip0pt
  • LaTeX : \hspace{0pt}
  • groff : \:

사용 예제

// 일반 문자열
바나나사과배복숭아딸기오렌지

// Space 추가
바나나 사과 배 복숭아 딸기 오렌지

// Zero Width Space 추가 (일반 문자열과 동일해보이지만 더블 클릭할 경우 선택 영역이 구분된다.)
바나나​사과​배​복숭아​딸기​오렌지

// Zero Width Space를 HTML 태그로 표현
바나나​사과​배​복숭아​딸기​오렌지

 

// Space 다음에 Zero Width Space 추가

바나나​ 사과​ 배​ 복숭아​ 딸기​ 오렌지

 

관련 사이트

 

Mixed Reality Keyboard Example Scene: TMPro input text inherits a "zero width space" (ZWSP) character at the end of the string

Describe the bug Within the Mixed Reality Keyboard Example scene the input text of the TMPro field inherits a zero width space char which is neither displayed by the editor nor by Visual Studio. Th...

github.com

참고 사이트

 

Zero width space ​

관련지식 html, css공백(space)와 같은 속성을 가지고 있지만 가로 길이를 가지고 있지 않은 문자 코드가 있습니다. HTML entity 코드가 ​ 인 Zero width space(ZWSP)는 특정한 경우에 매우 유용합니다.예1) 항

sub0709.tistory.com

댓글