Tengo un tampón con caracteres codificados en Windows-1252. Sin embargo al crear una nueva Cadena con codificación apropiada, en lugar de resultado esperado he muy a menudo interrogatorio marcas, ex.

byte[] tmps = new byte[] {(byte) 0xfb};
System.out.println (new String (tmps,0,1,"Windows-1252" ));

Como resultado el sistema debe mostrar la «u» char con «^» por encima de él. En su lugar se muestra «?».

Alguna idea?

  • Me tiró este código en una unidad de prueba en NetBeans 8 uso de Java 8, y se muestra la «u» con el acento circunflejo bien.
InformationsquelleAutor user2707175 | 2013-08-24

2 Comentarios

  1. 1

    Primero de todos los Windows-1252 es un admite codificación:

    Creo que lo más probable es que el problema aquí está en el lado de salida. Específicamente, Java puede pensar que la configuración regional predeterminada del conjunto de caracteres ASCII o algo que no sea compatible con el punto de código.

    Una forma de eliminar Windows-1252 como el causa de este problema es escribir el equivalente de cadena mediante un escape Unicode; por ejemplo,

        System.out.println("\u00fb");
    • Sistema.a cabo.println(«\u00fb»); no funciona lo siento.
    • Después de un poco más de investigación, es claro que el problema es con la visualización de los caracteres en la consola (eclipse) como convertir la cadena en valores enteros (integer char char da los valores correctos. Por otro lado, cuando la depuración y mostrar el valor de la variable de Cadena, la «u» con «^» se muestra correctamente. Por lo tanto, es para asegurarse de que el problema con la consola, pero, ¿cómo solucionarlo?
    • Y java se ejecutan directamente desde la línea de comandos (sin Eclipse) tienen el mismo problema con la visualización. 🙁 Sorprendentemente Windows-1250 caracteres se muestran correctamente. Traté de cambiar el tipo de letra utilizado para la ventana de cmd pero es la misma historia. Cómo resolver esto?
    • Lo que ayuda es «java -Dfile.encoding=cp1252 MyClassNameWithMain» pero no es la solución, ya que necesito tener completo de Unicode – de dos idiomas diferentes se muestran en la consola.
    • Si tu consola es UTF-8 capaz, debe modificar los ajustes del sistema a la fuerza de la consola para usar UTF-8. A continuación, establezca el Java por defecto la codificación a UTF-8.
    • Usted debe tener una mirada en docs.oracle.com/javase/8/docs/technotes/guides/intl/… el nombre puede ser diferente

  2. 1

    Ya he encontrado esto.

    Menú Run/Run configurations/siguiente Aplicación de Java y su propio nombre de la aplicación/ficha común/siguiente de la codificación de juego a UTF-8

    Y desde ahora windows 1250 y 1252 chars parece mostrarse aceptar.

Dejar respuesta

Please enter your comment!
Please enter your name here