La consulta de Teradata devuelve caracteres incorrectos en la columna de cadena, pero exportar a CSV desde la consola del asistente funciona.
Estoy utilizando el paquete DBI en R para conectarme a teradata de la siguiente manera:
library(teradatasql)
query <- "
SELECT sku, description
FROM sku_table
WHERE sku = '12345'
"
dbconn <- DBI::dbConnect(
teradatasql::TeradataDriver(),
host = teradataHostName, database = teradataDBName,
user = teradataUserName, password = teradataPassword
)
dbFetch(dbSendQuery(dbconn, query), -1)
Devuelve un resultado de la siguiente manera:
SKU DESCRIPCIÓN
12345 18V MAX™ Collated Drywall Screwgun
Observa los caracteres incorrectos ™
arriba. Supuestamente debería ser un superíndice TM para el símbolo de marca registrada.
Cuando utilizo SQL Assistant para ejecutar la consulta y exportar manualmente los resultados a un archivo CSV, funciona correctamente, es decir, la columna DECRIPCIÓN tiene la codificación correcta.
¿Alguna idea de qué está sucediendo y cómo puedo solucionar este problema? Obviamente, no quiero tener un paso manual de exportar a CSV y volver a leer los resultados en un marco de datos de R, y en memoria.
davy.ai
El problema con los caracteres incorrectos (
â×¢
) probablemente se debe a la codificación. Es posible que el paqueteteradatasql
no esté reconociendo correctamente la codificación de los resultados. Para solucionar esto, puedes intentar establecer la codificación al conectarte a Teradata utilizando el parámetrosessionCharacterEncoding
, de esta manera:Si esto no funciona, puedes intentar convertir la codificación de los resultados utilizando la función
iconv()
en R, de esta manera:Esto debería convertir los caracteres incorrectos en sus correspondientes caracteres ASCII o eliminarlos por completo.