Cómo convertir texto ansi a utf8 en golang (ir al idioma)? Intento convertir cadena ansi a cadena utf8.ir a la lengua cómo convertir el texto ansi a utf8?
Respuesta
Ir solo tiene cadenas UTF-8. Puede convertir algo en una cadena UTF-8 mediante la conversión se describe aquí de un byte []:
No hay manera de hacerlo sin tener que escribir la conversión sí mismo o mediante un paquete de terceros. Puede intentar usar esto: http://code.google.com/p/go-charset
He escrito una función que fue útil para mí, tal vez alguien más puede usar esto. Se convierte de Windows-1252
a UTF-8
. Me he convertido en algunos puntos de código que Windows-1252
trata como caracteres Unicode, pero considera que son caracteres de control (http://en.wikipedia.org/wiki/Windows-1252)
func fromWindows1252(str string) string {
var arr = []byte(str)
var buf bytes.Buffer
var r rune
for _, b := range(arr) {
switch b {
case 0x80:
r = 0x20AC
case 0x82:
r = 0x201A
case 0x83:
r = 0x0192
case 0x84:
r = 0x201E
case 0x85:
r = 0x2026
case 0x86:
r = 0x2020
case 0x87:
r = 0x2021
case 0x88:
r = 0x02C6
case 0x89:
r = 0x2030
case 0x8A:
r = 0x0160
case 0x8B:
r = 0x2039
case 0x8C:
r = 0x0152
case 0x8E:
r = 0x017D
case 0x91:
r = 0x2018
case 0x92:
r = 0x2019
case 0x93:
r = 0x201C
case 0x94:
r = 0x201D
case 0x95:
r = 0x2022
case 0x96:
r = 0x2013
case 0x97:
r = 0x2014
case 0x98:
r = 0x02DC
case 0x99:
r = 0x2122
case 0x9A:
r = 0x0161
case 0x9B:
r = 0x203A
case 0x9C:
r = 0x0153
case 0x9E:
r = 0x017E
case 0x9F:
r = 0x0178
default:
r = rune(b)
}
buf.WriteRune(r)
}
return string(buf.Bytes())
}
Aquí es más nuevo método.
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 {
return nil, e
}
return d, nil
}
func main() {
s := []byte{0xB0, 0xAA}
b, err := Decode(s)
fmt.Println(string(b))
fmt.Println(err)
}
que eran utilización iconv-go para hacer tal convertido, debe conocer cuál es tu página de códigos ANSI, en mi caso, es 'Big5'.
package main
import (
"fmt"
//iconv "github.com/djimenez/iconv-go"
iconv "github.com/andelf/iconv-go"
"log"
)
func main() {
ibuf := []byte{170,76,80,67}
var obuf [256]byte
// Method 1: use Convert directly
nR, nW, err := iconv.Convert(ibuf, obuf[:], "big5", "utf-8")
if err != nil {
log.Fatalln(err)
}
log.Println(nR, ibuf)
log.Println(obuf[:nW])
fmt.Println(string(obuf[:nW]))
// Method 2: build a converter at first
cv, err := iconv.NewConverter("big5", "utf-8")
if err != nil {
log.Fatalln(err)
}
nR, nW, err = cv.Convert(ibuf, obuf[:])
if err != nil {
log.Fatalln(err)
}
log.Println(string(obuf[:nW]))
}
golang.org/x/text/encoding/charmap
paquete tiene funciones exactamente para este problema
import "golang.org/x/text/encoding/charmap"
func DecodeWindows1250(enc []byte) string {
dec := charmap.Windows1250.NewDecoder()
out, _ := dec.Bytes(enc)
return string(out)
}
func EncodeWindows1250(inp string) []byte {
enc := charmap.Windows1250.NewEncoder()
out, _ := enc.String(inp)
return out
}
Editar: undefined: ba
es reemplazar enc
- 1. Conversión de UTF8 a ANSI con Ruby
- 2. Convirtiendo el problema ANSI en UTF8 C#
- 3. Cómo convertir UTF8 a Unicode
- 4. ¿Convertir cadena latin1 a utf8?
- 5. java: cómo convertir un archivo a utf8
- 6. Cómo convertir una cadena a UTF8?
- 7. Cómo convertir ISO8859-15 a UTF8?
- 8. VB6/VBScript cambia la codificación del archivo a ansi
- 9. ¿Cómo puedo usar vim para convertir mi archivo a utf8?
- 10. MySQL Convertir datos latin1 a UTF8
- 11. Cómo convertir el código IR de llvm a c?
- 12. PHP: convertir la salida de curl_exec a UTF8
- 13. Cómo convertir de K & R C a ANSI C?
- 14. ¿Cómo forzar a XPath a usar UTF8?
- 15. Convirtiendo archivo de texto de ANSI a ASCII usando C#
- 16. Convertir audio a texto
- 17. texto en lengua sueca en Web.config
- 18. ¿Convertir cadena ISO8859 a UTF8? ÄÖÜ => ¿Por qué?
- 19. Convertir caracteres Hi-Ansi a Ascii equivalente (é -> e)
- 20. Convertir tablas de mysql de latin1 a utf8
- 21. Cómo convertir reStructuredText a texto sin formato
- 22. Cómo convertir una cadena rtf a texto en C#
- 23. Convierte latin1 a UTF8
- 24. Conversión de UTF8 a ASCII
- 25. ¿Ir a puerto a la arquitectura AVR?
- 26. Notepad ++ ir a la definición
- 27. cómo convertir texto HTML a texto sin formato?
- 28. Cómo insertar lengua hindi en MySQL
- 29. función Ir a escribir
- 30. Convierta UTF8 a UTF16 con iconv
lo que es "ANSI"? – newacct
ANSI? ¿Qué es esto, 1982? –
@newacct [ASCII No debe confundirse con Windows-1252, también conocido como "ANSI"] (http://en.wikipedia.org/wiki/ASCII). –