r - ¿Cómo obtener la salida de codificación válida en caracteres chinos en RStudio en Mac?

CorePress2024-01-24  12

Estamos limpiando algunos datos de marketing en chino tradicional. Descubrimos que R puede leer nombres de variables en chino tradicional UTF-8 sin ningún problema. Sin embargo, no podemos obtener una salida UTF-8 válida allí. Por ejemplo,

Si ordenamos: único(rframe$性別)

Esto es lo que tenemos: [1] "\u5973" "\u7537"

En el que 性別 es "género", \u5973 significa mujer (女) y \u7537 significa hombre (男).

Lo más interesante es que R en la plataforma Linux genera la salida china UTF-8 válida si utilizamos el mismo archivo CSV UTF-8. ¿Por qué el mismo RStudio, que puede generar con éxito una codificación de salida china en UTF-8 en la plataforma Linux, no puede generar una salida china UTF-8 válida en el sistema Mac?

Este problema tan problemático ha estado ahí por un tiempo.Durante mucho tiempo. De hecho, en la versión anterior de RStudio, podíamos obtener una salida UTF-8 válida. ¿Algún amigo puede ayudarnos?

Muchas gracias.

Chandler



------------------------------------

Este problema proviene de un error en R, versión 4.0.4, código fuente. El código UTF-8 no se pudo mostrar de forma válida tanto en Windows como en Mac. Está arreglado en la versión 4.0.5.



------------------------------------

El error puede estar en la importación de los datos. ¿Cómo importaste tus datos?

EsoPuede intentar importar algunos datos con caracteres chinos y usar específicamente codificación = "UTF-8" y no tengo ningún problema.

Así que mi primera sugerencia es probar esto:

data <-read.csv("mydata.csv", encoding="UTF-8", stringsAsFactors=FALSE)

Un método adicional podría ser especificar las variables como caracteres. Según la siguiente respuesta. Entonces obtienes el carácter chino en lugar del Unicode.

as.character(unique(rframe$性別))

Si proporcionas un extracto de los datos, puedo comprobarlo y posiblemente confirmarlo.

5

Sí, agregamos las opciones de codificación que recapitula cuando importamos el archivo CSV.ile. Por supuesto, gracias por ofrecernos la información hace unos seis años sobre "obtener caracteres chinos en lugar de Unicode". Sin embargo, hoy en día es poco habitual utilizar el carácter chino en lugar de UTF-8. Lo más interesante es que R en la plataforma Linux genera la salida china UTF-8 válida si usamos el mismo archivo CSV UTF-8. ¿Por qué el mismo RStudio, que puede generar con éxito una codificación de salida china en UTF-8 en la plataforma Linux, no puede generar una salida china UTF-8 válida en el sistema Mac?

- Chandler C. Chu

27/03/2021 a las 20:00

No puedo responder a esta pregunta porque estoy usando R en MacOS y mi sugerencia generó el resultado correcto. Si puede proporcionar algunos datos de ejemplo, puedo investigarlos más a fondo

-Albin

27/03/2021 a las 20:05

Está bien. Aquí hay un archivo de muestra. Muy apreciado. dropbox.com/s/238aet54wzd53zf/rframe10.csv?dl=0

- Chandler C. Chu

27/03/2021 a las 21:33

Gracias por proporcionar los datos. Reproduje los hallazgos basados ​​en los datos y obtuve el resultado correcto. Al investigar más a fondo este problema, me topé con otra posible razón para este error. Puedes ir a RStudio >> Preferencias y seleccione Código. Desde allí, seleccione la pestaña Guardar y configure UTF-8 como su codificación de texto predeterminada. Si esto no proporciona la solución, espero que su mensaje directo a R pueda ayudarle

-Albin

28 de marzo de 2021 a las 9:21

Gracias por tu consejo. ElUTF-8 es la codificación de texto predeterminada desde que instalamos R en nuestra Mac.

- Chandler C. Chu

28/03/2021 a las 11:19



------------------------------------

Después de algunas pruebas y errores, descubrimos que este problema probablemente se debe al proceso de generación de la aplicación R en Mac.

Descargamos R de Git y compilamos una aplicación, a través de Apple clang versión 12.0.0 (clang-1200.0.32.29, Target: x86_64-apple-darwin19.6.0), desde el código fuente. Funciona bien. Nuestro problemático tema no vuelve a surgir. Hoy informamos a la sociedad R nuestros hallazgos. Esperamos que la gentePodremos ver una respuesta rápida pronto.

El siguiente mensaje es el informe que enviamos a R.

Para: Solicitud de informe de error [correo electrónico protegido]

Hola,

Soy más bien un programador de sistemas que ayuda a mi amigo (Chandler) a usar R para procesar datos. Tiene bastantes problemas para obtener la salida chino/unicode en el terminal. Sin embargo, eso sólo sucede en Mac. No puedo reproducirlo en Linux.

Creo que algo podría estar mal en la versión R - Mac. Vuelvo a compilar R con el código fuente de GitHub y no puedo reproducir este problema. Con una sola descarga del sitio web, se puede reproducir, con una tasa de error del 100%.

Los detalles se encuentran en https://www.facebook.com/groups/RnRStudio/permalink/4555694011125386/

Creo que es porque la cadena de herramientas para compilar R/MAC podría estar desactualizada.

Si puedes crear un error en Bugzilla y permitirme comentar allí, no necesitaré una cuenta de Bugzilla. O si alguno de ustedes puede patrocinar este tema, aún mejor.

O necesitaré una cuenta de Bugzilla.

¡Gracias!

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare