2012-05-08 6 views
1

Je le code XML suivant que je voudrais lire:lua lecture de caractères chinois

  1. xml chinois - https://news.google.com/news/popular?ned=cn&topic=po&output=rss
  2. korean xml - http://www.voanews.com/templates/Articles.rss?sectionPath=/korean/news

Actuellement, je tente d'utiliser un luaxml analyser dans le xml qui contient le caractère chinois. Cependant, lorsque j'imprime en utilisant la console, le résultat est que le caractère chinois ne peut pas être imprimé correctement et montrer comme un caractère de poubelle.

Je voudrais demander s'il y a de toute façon pour analyser un caractère chinois ou coréen dans la table lua?

+0

Votre console prend-elle en charge les caractères chinois? – Mud

+0

Géré pour le résoudre. Il s'avère que la console, j'ai besoin de mettre l'unicode à 65001. Cependant, quand j'ai essayé de lire dans le xml dans la table et de le renvoyer à xml, il ne pouvait pas afficher le caractère chinois. Au lieu du caractère chinois, il a montré une série de "ä ¸ ­ ç ¾ Ž". Toute méthode pouvant afficher le caractère chinois? – ktlim

+0

Ce sont des codes d'échappement XML. Toute * application * fonctionnant avec XML devrait savoir comment décoder ces codes. Si vous ouvrez le fichier XML dans votre navigateur, s'affiche-t-il correctement? – Robin

Répondre

0

j'ai réussi à convertir le "ä ¸ ­ ç ¾ Ž" en caractère chinois. Je devrais faire une étape supplémentaire qui doit convertir toutes les séries de chaîne en utilisant cette méthode à partir de ce lien, http://forum.luahub.com/index.php?topic=3617.msg8595#msg8595 avant d'enregistrer au format xml.

string.gsub(l,"&#([0-9]+);", function(c) return string.char(tonumber(c)) end) 

Je voudrais demander LuaXML, je suis venu à travers cette méthode xml.registerCode (décodé, codé)

Selon cette méthode, il est dit que

registers a custom code for the conversion between non-standard characters and XML character entities 

Que font-ils signifie par des caractères non standard et comment l'utiliser?

0

Je ne pense pas que Lua soit le problème ici. Les données brutes envoyées par le site distant sont encodées en UTF-8, et Lua ne fait aucune interprétation particulière de ce — ce qui signifie qu'il doit être parfaitement préservé si vous lisez (1) depuis le site distant et (2) enregistrez les données lues dans un fichier. Les données du fichier contiendront des caractères CJK codés en UTF-8, tout comme le site distant renvoyé. Si vous obtenez des résultats amusants comme vous l'avez mentionné, la faute réside probablement soit dans la bibliothèque que vous utilisez pour lire sur le site distant, soit simplement dans la façon dont votre console affiche les résultats lorsque vous y affichez .

+0

Jusqu'à présent, j'ai essayé de lire à partir du site Web, puis je la sortie dans un fichier texte et à partir du fichier texte et la sortie de retour au format XML. Quand je regarde le texte alors que j'ai sauvé, il est capable de stocker le caractère chinois, cependant quand je lis le texte et le sauvegarde en xml, le caractère chinois ne peut pas être affiché et le caractère chinois est substitué avec une série de citation que j'ai mentionné plus tôt. – ktlim

+0

Lorsque vous dites "lire le texte et le sauvegarder en xml" que faites-vous exactement? [le texte était _already_ au format xml quand vous l'avez récupéré sur le site, alors ...] Vous devez donner plus de détails sur votre code ... – snogglethorpe