Digamos que tengo un carácter chino aleatorio, 玩. Quiero convertirlo a Unicode, que sería U + 73A9. ¿Cómo podría hacer esto en C#?Conversión de caracteres chinos a Unicode
Respuesta
Take mychar como un char incluir su carácter especial ...
Console.WriteLine("{0} U+{1:x4} {2}", myChar, (int)myChar, (int)myChar);
encima estamos emitir un carácter seguido por el punto de código Unicode y entonces el valor entero.
Reducir la cadena de formato y los parámetros de salida sólo el código "U + ..." ...
Console.WriteLine("U+{0:x4}", (int)myChar);
¡Gracias, esto es asombroso! ¿Podrías explicarme el código? Entiendo que estás escribiendo el U +, pero ¿qué es '{0: x4}'? Sé que uno de ellos es especificador, entonces, ¿qué es ': x4'? – Mass
El 'x4' lo emite como hex (x), 4 dígitos cero rellenos a la izquierda. – Chris
¡Gracias! (15 caracteres ...) – Mass
El characater 玩 está en Unicode.
Si lo tiene en C# como 玩, entonces está actualmente en UTF-16, que es uno de los formularios de codificación Unicode.
Si está obteniendo es de otro lugar que necesita para:
- Encuentra la codificación que está en
- Obtener los bytes (envuelto por una corriente es agradable)..
- Obtenga de escritura un codificador apropiado.
- Usa el codificador para obtener la cadena (envolver la buena secuencia con un lector de texto es más agradable).
paso 3 puede ser simple (oh, yo sólo uso que uno!) O difícil (maldito, tiene que escribir yo mismo!) O en algún punto intermedio (hey, alguien escribe uno de estos ya ?!)
Un poco más largo ejemplo, que sigue el patrón de respuesta de Jon Hanna:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace UnicodeDecodeConsoleApplication
{
class Program
{
static void Main(string[] args)
{
char c = '\u73a9';
char[] chars = {c};
Encoding encoding = Encoding.BigEndianUnicode;
byte[] decodeds = encoding.GetBytes(chars);
StringBuilder stringBuilder = new StringBuilder("U+");
foreach (byte decoded in decodeds)
{
stringBuilder.Append(decoded.ToString("x2"));
}
Console.WriteLine(stringBuilder);
Console.ReadLine();
}
}
}
--jeroen
- 1. ¿Cómo escapar caracteres chinos Unicode en la URL?
- 2. Convertir caracteres chinos a Hanyu pinyin
- 3. Caracteres japoneses que parecen chinos en Android
- 4. Qt - Conversión de QString a Unicode QByteArray
- 5. Python punto de código Unicode de caracteres Unicode
- 6. Conversión de cadenas de caracteres anchas a minúsculas en C++
- 7. URL que escapa de caracteres Unicode chinos/japoneses para Internet Explorer
- 8. Mostrar caracteres chinos codificados en UTF-8 en R
- 9. Prueba de caracteres japoneses/chinos en una cadena
- 10. Detectar caracteres chinos (multibyte) en la cadena
- 11. Conversión de Unicode a cadena en Java
- 12. Para dividir solo caracteres chinos en Java
- 13. Caracteres chinos y el evento onkeypress
- 14. navegador Prevenir la conversión '\ n' entre líneas en el espacio (por caracteres chinos)
- 15. Conversión de Unicode a Windows-1252 para vCards
- 16. Caracteres Unicode de Base64ing
- 17. Conversión de Piecewise de una aplicación MFC a Unicode/MBCS
- 18. Cómo convertir UTF8 a Unicode
- 19. ¿Qué caracteres NO están presentes en Unicode?
- 20. Unicode a Windows-1251 Conversión con XML (HTML) -escaping
- 21. Python - Pyrersing caracteres Unicode
- 22. UTF-8 ancho de la pantalla Edición de caracteres chinos
- 23. caracteres Unicode cadena
- 24. Lista de caracteres alfabéticos Unicode
- 25. Impresión de caracteres chinos simplificados en Epson TM-T88IVM
- 26. ¿Se permiten caracteres chinos ingresados en las URL?
- 27. Dibujando caracteres Unicode en iPhone
- 28. htmlentities() hace que los caracteres chinos sean inutilizables
- 29. Conversión de cadenas Unicode y viceversa
- 30. Escribir caracteres Unicode en OStream
¿De dónde viene este caracter chino? ¿Entrada de teclado? ¿De un archivo en el disco? ¿Qué página de códigos o codificación se usa en ese archivo? (Chino simplificado, chino tradicional, o ??) Necesita saber qué codificación se utiliza en los bytes de entrada antes de poder convertirlo de manera significativa a alguna otra codificación. – dthorpe
Entrada de teclado, usando UTF (16 supongo que debería tener la mayoría de los caracteres), simplificado o tradicional. – Mass