>  기사  >  백엔드 개발  >  Golang은 소켓 중국어 잘못된 솔루션을 사용합니다.

Golang은 소켓 중국어 잘못된 솔루션을 사용합니다.

尚
원래의
2019-12-24 11:52:4311984검색

Golang은 소켓 중국어 잘못된 솔루션을 사용합니다.

go에서 Socket을 작성했는데, 클라이언트에서 중국어를 입력할 때 서버가 정상적으로 깨져서 문자를 표시하지 못하는 것을 발견했습니다.

Golang은 소켓 중국어 잘못된 솔루션을 사용합니다.

중국어 트랜스코딩으로 해결 가능합니다.

트랜스코딩은 go의 공식 golang.org/x/text 패키지를 사용하여 구현할 수 있습니다.

설치 명령은 다음과 같습니다.

go get golang.org/x/text

인코딩 형식을 변환하는 기능은 다음과 같습니다.

func GbToUtf8(s []byte) ([]byte, error) { 
    //reader := transform.NewReader(byte.NewReader(s), simplifiedchinese.GBK.NewEncoder())     
reader := transform.NewReader(bytes.NewReader(s),simplifiedchinese.GBK.NewDecoder())     
d, e := ioutil.ReadAll(reader)     
if e != nil {         
  return nil, e     
  }     
  return d, nil 
}

인코딩 형식 변환 기능 사용:

v, err := GbToUtf8(buf[0:n])

더 많은 golang 지식을 보려면 PHP 중국어 웹사이트를 참고하세요 golang 튜토리얼 칼럼.

위 내용은 Golang은 소켓 중국어 잘못된 솔루션을 사용합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.