Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

294
Vistas
Hacer que aparezcan símbolos específicos usando getCurrencyInstance() en Java

Estoy escribiendo una clase de ejemplo muy simple y pequeña para tratar de mostrar cómo funciona .getCurrencyInstance() de la clase NumberFormat en Java, pero mi resultado se ve un poco raro. Parece que la clase está funcionando, pero cuando intenta imprimir los símbolos reales de la moneda (como el símbolo del yen japonés o el símbolo de la libra esterlina) obtengo símbolos extraños en su lugar. ¿Hay alguna forma de arreglar esto? ¿Hay algo que deba importar para obtener estos símbolos en mi computadora?

Aquí está mi código:

 import java.util.*; import java.text.*; public class CurrencyFormatExample { public static void main(String[] args) { double convert = 9398.9398; NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(); System.out.println("American: " + currencyFormat.format(convert)); Locale swedish = new Locale("sv", "SE"); NumberFormat swedishFormat = NumberFormat.getCurrencyInstance(swedish); System.out.println("Swedish: " + swedishFormat.format(convert)); Locale japanese = new Locale("ja", "JP"); NumberFormat japaneseFormat = NumberFormat.getCurrencyInstance(japanese); System.out.println("Japanese: " + japaneseFormat.format(convert)); Locale russian = new Locale("ru", "RU"); NumberFormat russianFormat = NumberFormat.getCurrencyInstance(russian); System.out.println("Russian: " + russianFormat.format(convert)); Locale british = new Locale("en", "GB"); NumberFormat britishFormat = NumberFormat.getCurrencyInstance(british); System.out.println("British: " + britishFormat.format(convert)); } }

Aquí está el resultado que obtengo con esto:

 American: $9,398.94 Swedish: 9á398,94 kr Japanese: ?9,399 Russian: 9á398,94 ???. British: ú9,398.94

Como puede ver, eso claramente no está bien. ¿Alguna forma de remediar esto?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Si está ejecutando este código en Eclipse, ajuste su Ventana > Preferencias > General > Codificación de texto del espacio de trabajo a UTF-8

over 4 years ago · Santiago Trujillo Denunciar

0

En jGRASP: "Configuración" > "Fuente", pestaña "Conjunto de caracteres". Cambie "Conjunto de caracteres de E/S" a UTF-8. En la pestaña "Compilador", subpestaña "Flags/Args", para "FLAGS2" del comando "Run", agregue "-Dfile.encoding=UTF-8".

El cambio "file.encoding" también cambiará los archivos de codificación predeterminados que su programa lee y escribe. Desafortunadamente, Java no proporciona una forma de especificar un conjunto de caracteres diferente para la E/S de archivo normal y la E/S de stdin, stdout y stderr cuando están conectados a conductos en lugar de a una consola (la mayoría de los IDE utilizan conductos). Entonces, si desea que se use la codificación nativa de forma predeterminada dentro de su programa y aún desea UTF-8 para E/S en el IDE, no hay forma de hacerlo. Por lo tanto, no sería prudente que el IDE agregue automáticamente el indicador "file.encoding", a menos que haya una configuración "Solo use UTF-8 para todo".

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda