Golang 문자 인코딩 정보

5985 단어 Go

입문


인코딩 관계는 정말 번거롭기 때문에 먼저 자신의 지식을 총결해 보세요.

인코딩 유형


기본적으로 UTF8, Shift_JIS,EUC_JP 느낌 세 가지.
나는 UTF8이 가장 통용되고 어디서나 사용할 수 있다고 생각한다.
Shift_JIS는 Windows에서 사용, EUC_JP는 Mac에서 사용됩니다.
문제는 시프트_JIS는 상당히 번거로운 코드 문제를 일으킬 것이다

문자 코드 변환(transform.NewReader()


문자 코드를 바꿀 때의 코드 중 일반적인transform입니다.나는 이것이 New Reader의 ↓ 을 사용하는 것이라고 생각한다.
sample := "こんにちは"
// Shift_JISからUTF8に変換
str := transform.NewReader(sample, japanese.Shift_JIS.NewDecoder())
// UTF8からShift_JISに変換
str := transform.NewReader(sample, japanese.Shift_JIS.NewEncoder())
// EUC_JPからUTF8に変換
str := transform.NewReader(sample, japanese.EUCJP.NewDecoder())
// UTF8からEUC_JPに変換
str := transform.NewReader(sample, japanese.EUCJP.NewEncoder())
이런 느낌.
UTF8로 변환할 때 NewDecoder()를 사용하여 Shift_JIS,EUC_JP로 전환할 때는 New Encoder()를 사용하는 느낌이다.
그런데 이거 오류 안 났어요. 괜찮아요?
솔직히 말하면 오류가 생길 수 있으니까 오류를 감지했으면 좋겠어...
예:
str := transform.NewReader(sample, unicode.UTF*.NewDecoder())
이렇게 되면 샘플이 바로 출력되겠죠.
아무래도 잘못이 없는 것 같아서 괜찮은데 문제가 있는 것 같아서 무서워요.

문자 코드 변환(transform.Strings()


transform.Strings를 사용하여 인코딩을 변경하는 방법도 있습니다.
이것도 잘못을 보충할 수 있기 때문에 나는 개인적으로 이것이 비교적 좋다고 생각한다.
// UTF8からShiftJISに変換
str, n, err := transform.String(japanese.ShiftJIS.NewEncoder(), sample)
// ShiftJISからUTF8に変換
str, n, err := transform.String(japanese.ShiftJIS.NewDecoder(), sample)
// UTF8からEUC_JPに変換
str, n, err := transform.String(japanese.EUCJP.NewEncoder(), sample)
// EUC_JPからUTF8に変換
str, n, err := transform.String(japanese.EUCJP.NewDecoder(), sample)
이런 느낌.

UTF8에서 ShiftJIS로 변환할 때 부호화


UTF8에서 ShiftJIS로 변환할 때 오류가 발생할 수 있습니다.
항간에는'Shift_JIS의 안 되는 문자'라고 불리는데, 문자의 2바이트가'|,/,\,@'등 문자 코드와 겹칠 때 문자통이 발생한다고 한다.
설명이 너무 엉망인 것 같아서 무슨 말인지 모르겠으니 참고하세요↓
https://sites.google.com/site/fudist/Home/grep/sjis-damemoji-jp
https://sites.google.com/site/fudist/Home/grep/sjis-damemoji-jp/table
윈도우즈의 디코딩 문제는 매우 번거롭기 때문에 즉시 해결되기를 바랍니다.

좋은 웹페이지 즐겨찾기