Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi est-ce que je vois des caractères \'????\' lors de la récupération de texte UTF-8 à partir de MySQL dans R ?

Linda Hamilton
Libérer: 2024-11-03 18:05:29
original
186 Les gens l'ont consulté

Why am I seeing

Récupération de texte UTF-8 à partir de MySQL dans R : décodage de "?????"

Récupération de texte encodé en UTF-8 à partir d'un La base de données MySQL dans R peut parfois entraîner "????" personnages. Pour résoudre ce problème, considérez les éléments suivants :

1. Vérifier l'encodage de la base de données

Assurez-vous que la table de base de données est définie avec le jeu de caractères et le classement appropriés. Par exemple, dans MySQL :

CREATE TABLE test (str VARCHAR(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Copier après la connexion

2. Définir l'encodage de connexion

Lors de l'établissement d'une connexion à une base de données dans R, spécifiez l'encodage de caractères correct.

RODBC :

con <- odbcDriverConnect('DRIVER=mysql;user=root', CharSet='utf8')
Copier après la connexion

RMySQL :

Connectez-vous d'abord, puis exécutez :

dbConnect(MySQL(), user='root')
dbSendQuery(con, 'SET NAMES utf8')
Copier après la connexion

3. Convertir l'encodage des caractères

Après avoir récupéré les résultats, convertissez l'encodage des caractères de la colonne de chaîne en UTF-8.

RODBC :

res <- sqlQuery(con, 'SELECT * FROM rtest.test')
res$str <- iconv(res$str, "UTF-8-Mac")
Copier après la connexion

RMySQL :

res <- dbGetQuery(con, 'SELECT * FROM rtest.test')
res$str <- as.character(res$str, encoding = 'UTF-8')
Copier après la connexion

Remarques supplémentaires :

  • Assurez-vous que les paramètres régionaux du système par défaut sont définis sur UTF-8 .
  • Pour RMySQL, l'utilisation de dbSendQuery pour définir le codage des caractères est efficace pour toutes les requêtes ultérieures.
  • iconv peut également être utilisé pour transcoder des chaînes en UTF-8, mais son comportement peut varier en fonction du plateforme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal