8
votes

Comment convertir le codage de la base de données MS Access en UTF-8?

Je travaille actuellement sur une application Legacy Classic ASP + MS-Access. J'ai récemment convertit tous les fichiers .asp vers UTF-8 du codage ISO-8859 (Windows).

Le problème que j'ai maintenant est que le texte stocké à l'intérieur de la base de données (français avec des caractères accentués) s'affiche de manière incorrecte lorsqu'il est rendu dans les pages Web car les codages sont incohérents. Comment convertir mon codage de la base de données MS Access de l'ISO-8859 en UTF-8?


1 commentaires

IDEVLOP: Ne fonctionne pas bien de cette façon ...


4 Réponses :


1
votes

Vous pourrez peut-être écrire une instruction de mise à jour d'accès qui utilise la fonction Strconv pour convertir le texte en Unicode.

voir http://www.techonthenet.com/access/functions/string /strconv.php


0 commentaires

1
votes

J'ai fini par utiliser server.htmlencode pour le texte sortant de ma base de données. Il a complètement brisé tout le code HTML que j'avais stocké là-bas, donc je dois écrire un piratage laid pour éviter de convertir des balises HTML en chaînes HTML-Safe. Cela fonctionne maintenant, mais ce n'est certainement pas la solution la plus élégante ...


0 commentaires

6
votes

Comment convertir ma base de données MS Access Codage de ISO-8859 en UTF-8?

vous ne le faites pas. Accès peut gérer le texte UNICODE, mais cela ne le stocke pas comme UTF-8. Il existe des moyens d'insérer directement le texte codé UTF-8 dans les champs texte mais qui conduit à un comportement étrange comme illustré dans mon autre réponse ici .

Pour une application ASP, utilisez simplement des pages codées comme UTF-8, indiquez IIS de produire une sortie UTF-8 (via la <% @ codépage = 65001%> directive), et laissez IIS et le pilote d'accès OLDEB gérent la conversion entre "Access Unicode" et UTF-8.

Pour un exemple détaillé d'accès, ASP classique et UTF-8 Voir ma réponse ici:

capturer et insérer un texte unicode (cyrillique) dans la base de données d'accès MS

Note importante

Sachez que vous ne devriez pas utiliser une base de données d'accès en tant que magasin de données d'appoint pour une application Web; Microsoft recommande vivement contre le faire (ref: ici ).


0 commentaires

0
votes

Vous pouvez le faire dans Access 2000.
Cliquez avec le bouton droit sur la table que vous souhaitez convertir.
Sélectionnez "Exporter"
Dans la liste déroulante "Enregistrer en tant que type" Choisissez "Fichiers texte ( .txt; .csv; .tab; .asas)", entrez un nom pour les exportés Fichier et appuyez sur "Enregistrer"
Choisissez délimité et appuyez sur "Avancé"
Dans la liste "Langue", choisissez "All", dans la liste "Page Code" Choisissez "Unicode (UTF-8)"
Changer d'autres paramètres ici que vous voulez
Appuyez sur "OK", appuyez sur "Suivant" et sélectionnez votre délimiteur. Vérifiez l'option pour inclure les noms de champs de première rangée
Appuyez sur "Suivant", confirmez le dossier de destination pour le nouveau fichier et cliquez sur "Terminer"

La prochaine étape consiste à réimporter le fichier enregistré:
Sélectionnez Fichier, obtenez des données externes, importer
Dans la liste déroulante "Fichiers de type" Choisissez "Fichiers texte ( .txt; .csv; .tab; .asasc)"
Accédez au fichier texte enregistré et appuyez sur Importer
Spécifiez délimité et appuyez sur "Suivant"
Spécifiez le caractère délimiteur et appuyez sur "Suivant"
Appuyez sur la touche "Avancé" et choisissez une fois de nouveau tout dans la liste "Langue" et choisissez "Unicode (UTF-8)" dans la "page de code"
Sélectionnez le bouton radio pour enregistrer dans une nouvelle table et appuyez sur "Suivant"
Sélectionnez le bouton radio pour "Aucune clé primaire" (sinon, l'accès insérera un IDFIELD comme premier champ de la table, que vous ne voudrez peut-être pas) Cliquez sur "Suivant", vérifiez le nom de la table importée, puis cliquez sur "Terminer"

Remarque:

  1. Vous devrez éditer la nouvelle table pour lui donner des noms de champs, mais ceux-ci devraient être dans le premier enregistrement si vous les exérez.

  2. Access sera le type de numéro automatique aux types de booléens importés et aux types de date de Boolean importés, vous devrez peut-être modifier ces


0 commentaires