본문 바로가기
Game/Unity

Unity text에 CSV에서 받아온 string을 사용할 때 큰따옴표/쌍따옴표(")와 역슬래시(\) 표시 안 나는 오류 해결 방법

by 코딩여걸 2025. 11. 24.
728x90

CSV로 받아온 string 데이터를

Unity text에 넣어서 사용하고 있었는데

다음과 같은 오류가 났다.

 

1️⃣ 큰따옴표/쌍따옴표(")는 2개씩 찍힌다.

(예: "안녕하세요" -> ""안녕하세요"")

 

2️⃣ 역슬래시(\)는 아예 사라져 버린다.

(예: \n -> n)

💡 만약 csv에서 줄 바꿈 코드를 넣고 싶으면

<br> 태그로 써주는 게 안전할 것 같다.


 

처음에 이렇게 큰따옴표가 2개씩 나온다고

따옴표 오류 QA를 받았다.


1️⃣ 이스케이프 시퀀스(Escape sequence) ❌

처음으로 시도해 본 방법은 이스케이프 시퀀스(Escape sequence) 처리 방식으로 시도해 봤다.

각각 2개씩 사용해봤다. (""큰따옴표"", \\역슬래시\\)

검색창에 뜬 Chat GPT

역슬래시(\)는 아예 없어져버리고 큰따옴표(")는 여전히 2개씩 나온다.

 

바로 다음 방법으로 넘어가 보자..!


2️⃣ 유니코드 코드포인트 

큰따옴표의 유니코드 코드포인트는 U+0022이다.

하지만 U+0022 이렇게만 쓰면 문자 그대로 나온다.

 

큰따옴표 유니코드인 &quot;를 써도

&quot; 문자 그대로 나온다.

 

\u 접두사 뒤에 16진수 코드 네 자리를 입력하면 된다. (\u0022)

 

그렇게 해서 "\u0022건강한 식습관\u0022" 이렇게 입력했다.

이게 잘 나올 줄 알았지만...

출력 결과는

u0022건강한 식습관u0022

이렇게 나왔다.


< 큰따옴표 유니코드 코드포인트 종류 >

이렇게 서로 다른 모양의 쌍따옴표 3개가 있다.


1. \u0022

큰따옴표 1개

 

2. \u201C

왼쪽 큰따옴표

 

3. \u201D

오른쪽 큰따옴표

 

(그래서 나는 \u0022 대신

\u201C, \u201D로 사용하기로 했다.)


u201C건강한 식습관u201D

자꾸 역슬래시가 사라진채로 출력돼서

csv가 받아오는 데이터를 확인해 봤더니

 

역슬래시가 아예 없이 전달이 되고 있었다.

 

csv에 역슬래시 1개~4개까지 (\, \\, \\\, \\\\) 찍어봤지만

모두 사라졌다...

 

그렇게 또 찾아보다가 생각한 방법은 바로!!!


3️⃣ 유니코드 코드포인트 + string.Replace() ✅

u201C건강한 식습관u201D

이렇게 작성한 후

.Replace()를 이용하여 코드에서 역슬래시(\)를 붙여주면 된다.

 

문자열.Replace("치환할 구간", "치환 문자")
sentenceText.text = sentence.Replace("u201C", "\u201C")

이렇게 작성했더니

드디어 큰따옴표 적용이 됐다!!!!

나머지 u201D도 적용해 보자!!

 

.Replace()를 여러개 써도 되는지 알아봤더니

.Replace() 뒤에 또 .Replace()를 붙여서 쓰면 된다.

 

sentenceText.text = sentence.Replace("u201C", "\u201C").Replace("u201D", "\u201D");

 

최종적으로 이렇게 해서

큰따옴표를 잘 적용할 수 있게 되었다!!!

(csv에도 역슬래시를 제거하고 u201C, u201D로만 작성해 놨다.)

 

드디어!!!!!

해냈다..ㅎㅎ...!!!


혹시 비슷하거나 같은 문제를 겪으시는 분들을 위하여...

파이팅입니다!!!

(문제 해결은 언제나 즐거워 ㅋㅋㅋㅋ)

728x90

댓글