> 백엔드 개발 > Golang > Go에서 원시 유니코드 이스케이프 JSON 데이터를 읽을 수 있게 만들려면 어떻게 해야 합니까?

Go에서 원시 유니코드 이스케이프 JSON 데이터를 읽을 수 있게 만들려면 어떻게 해야 합니까?

DDD
풀어 주다: 2024-12-05 19:28:11
원래의
687명이 탐색했습니다.

How Can I Make Raw Unicode-Escaped JSON Data Readable in Go?

원시 유니코드로 인코딩된 콘텐츠를 읽을 수 있게 만들려면 어떻게 해야 하나요?

웹 API에서 JSON 데이터를 요청할 때 다음과 같은 원시 ASCII 콘텐츠가 나타날 수 있습니다. 유니코드 이스케이프처럼 나타납니다. bufio.ScanRunes를 사용하여 응답을 구문 분석하는 데 실패하는 동안 json 패키지 또는 strconv.Unquote와 같은 도구를 사용하여 응답을 디코딩하면 유니코드 이스케이프를 읽을 수 있는 텍스트로 효과적으로 변환할 수 있습니다.

자세한 설명:

질문에 제공된 JSON 데이터에는 u5408 및 백슬래시 이스케이프를 사용하여 표현된 유니코드 문자가 포함되어 있습니다. u672a. 이러한 이스케이프를 디코딩하고 실제 유니코드 문자를 표시하려면 다음 방법을 활용할 수 있습니다.

  • JSON 패키지(json): JSON은 JSON 데이터를 역마샬링할 때 유니코드 이스케이프의 자동 디코딩을 지원합니다. . 예는 다음과 같습니다.
package main

import (
    "encoding/json"
)

func main() {
    var i interface{}
    err := json.Unmarshal([]byte(`{"name": "\u5408\u80a5"}`), &i)
    fmt.Println(err, i)
}
로그인 후 복사

출력(Go Playground에서 시도):

<nil> map[name:同学]
로그인 후 복사
  • strconv.Unquote: 인용 해제 유니코드로 인코딩된 텍스트의 작은 조각인 strconv.Unquote를 사용할 수 있습니다. 아래와 같이 따옴표로 묶인 문자열이 필요합니다.
fmt.Println(strconv.Unquote(`"\u7d20\u672a\u8c0b"`))
로그인 후 복사

출력(Go Playground에서 시도해 보세요):

素未谋
로그인 후 복사

strconv.Unquote에는 컴파일러가 이스케이프 자체를 인용 해제하는 것을 방지하기 위해 원시 문자열 리터럴( ` )을 사용하여 문자열을 따옴표로 묶습니다.

위 내용은 Go에서 원시 유니코드 이스케이프 JSON 데이터를 읽을 수 있게 만들려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿