unicode - utf8 - Convierta GB2312 a UTF-8
utf8_encode html (3)
Tengo un archivo de texto que contiene cadenas de idioma localizado que actualmente está codificado en GB2312 (chino simplificado), pero todos mis otros archivos de idioma están en UTF-8. Me resulta muy difícil trabajar con este archivo, ya que ninguno de mis editores de texto funcionará correctamente con él y seguirá corrompiéndolo. ¿Hay alguna herramienta para convertir esto a UTF-8, y hay algún inconveniente para hacer esto? ¿Sería mejor mantenerlo como GB2312 y usar un editor diferente (si es así, puede recomendar uno)?
Actualización: estoy usando Windows XP (instalación en inglés).
Actualización n. ° 2: Intenté usar Notepad ++ y Notepad2 para editar los archivos GB2312, pero ninguno es capaz de leer los archivos y corromperlos.
GB 2312 es principalmente compatible con GB 18030, por lo que cualquier herramienta capaz de tratar con este último también debe tratar GB 2312 correctamente. Hay muchas herramientas para convertir GB 18030 a UTF-8 (o algún otro formulario de codificación Unicode), pero no puedo recomendar ninguno específico para Windows, porque trabajo en Unix. Si quiere escribir un poco de código, le viene a la mente la biblioteca de iconos, o ICU : encontrará todas las conversiones disponibles en estas bibliotecas.
La conversión de GB 2312 a UTF-8 es completamente segura y sin pérdidas, no debe preocuparse por ello.
Puede que aquí me parezca demasiado simple, pero si es solo este archivo de texto sin formato, podría intentar lo siguiente:
- Reemplazar todo por
&
, todo<
por<
y todo>
por>
(para estar seguros) Añada lo siguiente al archivo de texto:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head><body><pre>
Abra el archivo en su navegador favorito
- Seleccionar y copiar todo el texto
- Pégalo en el Bloc de notas y guárdalo como UTF-8.
Habría terminado con esto antes de poder escribir cualquier código para hacer la conversión o descargar los programas que harían la conversión por usted.
Por supuesto, no estoy cien por ciento seguro de que esto funcione, y su navegador necesitaría las fuentes correctas y todo, pero teniendo en cuenta que está trabajando con este tipo de archivos, supongo que ya los tiene.
Puede probar este servicio en línea que utiliza la utilidad iconv
código abierto.
También puede instalar Charco , una versión de línea de comandos en su máquina.
Para GB2312
, puede usar CP936
como codificación.
Si usted es un desarrollador de .Net, puede crear una pequeña herramienta que haga precisamente eso.
También he luchado con esto y he descubierto que en realidad era simple de resolver desde un punto de vista programático.
Todo lo que necesitas es algo como esto (lo probé y funciona):
Cª#
static void Main(string[] args) {
string infile = args[0];
string outfile = args[1];
using (StreamReader sr = new StreamReader(infile, Encoding.GetEncoding(936))) {
using (StreamWriter sw = new StreamWriter(outfile, false, Encoding.UTF8)) {
sw.Write(sr.ReadToEnd());
sw.Close();
}
sr.Close();
}
}
En VB.Net
Private Shared Sub Main(ByVal args() As String)
Dim infile As String = args(0)
Dim outfile As String = args(1)
Dim sr As StreamReader = New StreamReader(infile, Encoding.GetEncoding(936))
Dim sw As StreamWriter = New StreamWriter(outfile, false, Encoding.UTF8)
sw.Write(sr.ReadToEnd)
sw.Close
sr.Close
End Sub