Aller a seulement des chaînes UTF-8. Vous pouvez convertir quelque chose à une chaîne UTF8 à l'aide de la conversion décrites ici, à partir d'un byte[]:
J'ai écrit une fonction qui a été utile pour moi, peut-être quelqu'un d'autre peut utiliser ce fichier. Il convertit les Windows-1252 à UTF-8. J'ai converti quelques points de code que Windows-1252 traite comme des caractères, mais Unicode considère comme des caractères de contrôle (http://en.wikipedia.org/wiki/Windows-1252)
func fromWindows1252(str string)string{var arr =[]byte(str)var buf bytes.Buffervar r rune
for _, b := range(arr){switch b {case0x80:
r =0x20ACcase0x82:
r =0x201Acase0x83:
r =0x0192case0x84:
r =0x201Ecase0x85:
r =0x2026case0x86:
r =0x2020case0x87:
r =0x2021case0x88:
r =0x02C6case0x89:
r =0x2030case0x8A:
r =0x0160case0x8B:
r =0x2039case0x8C:
r =0x0152case0x8E:
r =0x017Dcase0x91:
r =0x2018case0x92:
r =0x2019case0x93:
r =0x201Ccase0x94:
r =0x201Dcase0x95:
r =0x2022case0x96:
r =0x2013case0x97:
r =0x2014case0x98:
r =0x02DCcase0x99:
r =0x2122case0x9A:
r =0x0161case0x9B:
r =0x203Acase0x9C:
r =0x0153case0x9E:
r =0x017Ecase0x9F:
r =0x0178default:
r = rune(b)}
buf.WriteRune(r)}returnstring(buf.Bytes())}
package main
import("bytes""fmt""io/ioutil""golang.org/x/text/encoding/traditionalchinese""golang.org/x/text/transform")
func Decode(s []byte)([]byte, error){
I := bytes.NewReader(s)
O := transform.NewReader(I, traditionalchinese.Big5.NewDecoder())
d, e := ioutil.ReadAll(O)if e !=nil{returnnil, e
}return d,nil}
func main(){
s :=[]byte{0xB0,0xAA}
b, err :=Decode(s)
fmt.Println(string(b))
fmt.Println(err)}
Je devais utiliser iconv-aller pour faire ce genre de conversion, vous devez savoir quel est votre page de codes ANSI, dans mon cas, c'est "big5'.
Il n'y a aucun moyen de le faire sans avoir à écrire de la conversion vous-même ou à l'aide d'un logiciel tiers. Vous pouvez essayer d'utiliser ce: http://code.google.com/p/go-charset
Aller a seulement des chaînes UTF-8. Vous pouvez convertir quelque chose à une chaîne UTF8 à l'aide de la conversion décrites ici, à partir d'un byte[]:
http://golang.org/doc/go_spec.html#Conversions
OriginalL'auteur Deleted
J'ai écrit une fonction qui a été utile pour moi, peut-être quelqu'un d'autre peut utiliser ce fichier. Il convertit les
Windows-1252
àUTF-8
. J'ai converti quelques points de code queWindows-1252
traite comme des caractères, mais Unicode considère comme des caractères de contrôle (http://en.wikipedia.org/wiki/Windows-1252)OriginalL'auteur ctn
Ici est plus récente de la méthode.
Je devais utiliser iconv-aller pour faire ce genre de conversion, vous devez savoir quel est votre page de codes ANSI, dans mon cas, c'est "big5'.
OriginalL'auteur Daniel YC Lin
Il n'y a aucun moyen de le faire sans avoir à écrire de la conversion vous-même ou à l'aide d'un logiciel tiers. Vous pouvez essayer d'utiliser ce: http://code.google.com/p/go-charset
OriginalL'auteur Evan Shaw
golang.org/x/text/encoding/charmap
paquet a des fonctions exactement pour ce problèmeEdit:
undefined: ba
est de remplacerenc
out, _ := charmap.Windows1250.NewDecoder().String(input)
OriginalL'auteur Tomas