{"id":183,"date":"2004-08-08T13:55:48","date_gmt":"2004-08-08T11:55:48","guid":{"rendered":"http:\/\/www.marblestation.com\/blog\/?p=183"},"modified":"2012-04-26T19:01:41","modified_gmt":"2012-04-26T17:01:41","slug":"problemas-entre-planet-y-wordpress","status":"publish","type":"post","link":"https:\/\/www.marblestation.com\/?p=183","title":{"rendered":"Problemas entre Planet y WordPress"},"content":{"rendered":"<p>Desde hace bastante tiempo tengo problemas con mi blog WordPress y el <a href=\"http:\/\/www.planetplanet.org\/\">PlanetPlanet<\/a>, este \u00faltimo no era capaz de entender mi <a href=\"http:\/\/www.marblestation.com\/blog\/wp-rss2.php\">feed<\/a> para agregar mis posts. Por lo poco que investigu\u00e9 averigu\u00e9 que se trataba del caracter &#038; que no lo interpretaba bien el planet, la \u00fanica soluci\u00f3n que encontr\u00e9 era crear un feed nuevo donde no estuviesen todo el cuerpo de mis posts, s\u00f3lo un peque\u00f1o res\u00famen y de esta forma en la mayor\u00eda de los casos evitaba llegar a cualquier &#038;.<br \/>\n<!--more--><br \/>\nEl error concreto que daba el planet:<\/p>\n<pre>\r\nINFO:root:Updating feed &#60;http :\/\/www.marblestation.com\/blog\/wp-rss2.php>\r\nDEBUG:root:Encoding: ISO-8859-1\r\nDEBUG:root:E-Tag: \"bc75f597ef208a8deaed7f6001f05cd8\"\r\nDEBUG:root:URI: &#60;http :\/\/www.marblestation.com\/blog\/wp-rss2.php>\r\nERROR:root:Update from &#60;http :\/\/www.marblestation.com\/blog\/wp-rss2.php> failed\r\nTraceback (most recent call last):\r\n  File \"planet.py\", line 130, in ?\r\n    channel.update()\r\n  File \"\/opt\/planet-devel\/planetlib.py\", line 169, in update\r\n    self._update(baseuri, data)\r\n  File \"\/opt\/planet-devel\/planetlib.py\", line 273, in _update\r\n    feed.feed(data)\r\n  File \"\/usr\/lib\/python2.3\/sgmllib.py\", line 95, in feed\r\n    self.goahead(0)\r\n  File \"\/usr\/lib\/python2.3\/sgmllib.py\", line 134, in goahead\r\n    k = self.parse_endtag(i)\r\n  File \"\/usr\/lib\/python2.3\/sgmllib.py\", line 293, in parse_endtag\r\n    self.finish_endtag(tag)\r\n  File \"\/usr\/lib\/python2.3\/sgmllib.py\", line 333, in finish_endtag\r\n    self.unknown_endtag(tag)\r\n  File \"\/opt\/planet-devel\/feedparser.py\", line 358, in unknown_endtag\r\n    method()\r\n  File \"\/opt\/planet-devel\/feedparser.py\", line 778, in _end_content\r\n    value = self.pop('content')\r\n  File \"\/opt\/planet-devel\/feedparser.py\", line 480, in pop\r\n    output = resolveRelativeURIs(output, self.baseuri)\r\n  File \"\/opt\/planet-devel\/feedparser.py\", line 897, in resolveRelativeURIs\r\n    data = p.output()\r\n  File \"\/opt\/planet-devel\/feedparser.py\", line 853, in output\r\n    return \"\".join(self.pieces)\r\nUnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 3: ordinal not in range(128)\r\n<\/pre>\n<p>M\u00e1s tarde, Tom\u00e0s empez\u00f3 a utilizar tambi\u00e9n WordPress y acab\u00f3 con los mismos problemas que yo con el planet \ud83d\ude41 Per\u00f2 el si que empez\u00f3 a investigar m\u00e1s profundamente cual era el problema y en uno de sus <a href=\"http:\/\/shinjix.net\/wp\/index.php?p=40\">\u00faltimos posts encontr\u00f3 una soluci\u00f3n<\/a>. <\/p>\n<p>Comenta que WordPress traduce el s\u00edmbolo &#038; como &#8220;&#038; #038;&#8221; y es correcto si estamos tratando texto en formato ISO-8859-15, pero en el caso de UTF-8 el s\u00edmbolo &#038; deber\u00eda ser expresado como &#8220;&#038; #x0026;&#8221;. As\u00ed que la soluci\u00f3n que encontr\u00f3 era cambiar el s\u00edmbolo &#038; (por lo visto solo los que se encuentran entre comillas, los dem\u00e1s no es necesario) por &#8220;&#038; #x0026;&#8221;.<\/p>\n<p>Hoy por fin me he decidido a aplicar la soluci\u00f3n de Tom\u00e0s y me he leido con detenimiento su post, entonces me he dado cuenta que el tiene su <a href=\"http:\/\/www.shinjix.net\/wp\/\">blog<\/a> completamente en UTF-8 y por tanto es l\u00f3gico que la traducci\u00f3n del &#038; que hace WordPress (seg\u00fan el parrafo anterior) sea incorrecta ya que mezcla ISO-8859-15 con UTF-8. Per en mi caso, lo tengo todo como ISO-8859-15 y por tanto la traducci\u00f3n que hace WordPress es correcta!! Utilizo ISO-8859-15 y WordPress traduce el s\u00edmbolo &#038; con el formato ISO-8859-15!! Por tanto, creo que aqui se han juntado 2 bugs:<\/p>\n<ol>\n<li>WordPress, a pesar de estar configurado con formato UTF-8, reemplaza los s\u00edmbolos &#038; por &#8220;&#038; #038;&#8221; que corresponden al formato ISO-8859-15<\/li>\n<li>El Planet cuando obtiene not\u00edcias de un feed que esta en ISO-8859-15 falla al interpretar &#8220;&#038; #038;&#8221; a pesar de que es correcto.<\/li>\n<\/ol>\n<p>Por suerte he encontrado la soluci\u00f3n muy r\u00e1pidamente, he modificado el c\u00f3digo fuente de WordPress para que traduzca los &#038; en &#8220;&#038; amp&#8221; en lugar de &#8220;&#038; #038;&#8221;. De esta forma no falla cuando tienes la web en ISO-8859-15, no lo he probado con UTF-8&#8230; quiz\u00e1s lo pruebe Tom\u00e0s si se anima \ud83d\ude09<\/p>\n<p>La modificaci\u00f3n consiste en cambiar la linea 107 del fichero &#8220;wp-include\/functions-formatting.php&#8221;:<\/p>\n<pre>\r\n--- functions-formatting.php    2004-08-08 13:27:59.000000000 +0200\r\n+++ functions-formatting.php.new        2004-08-08 13:27:49.000000000 +0200\r\n@@ -104,7 +104,7 @@\r\n        $content = preg_replace('\/&#60;category>(.+?)&#60;\/category>\/','',$content);\r\n\r\n\r\n        \/\/ Converts lone & characters into &#38; (a.k.a. &amp;)\r\n-       $content = preg_replace('\/&([^#])(?![a-z]{1,8};)\/i', '&#038;$1', $content);\r\n+       $content = preg_replace('\/&([^#])(?![a-z]{1,8};)\/i', '&amp;$1', $content);\r\n\r\n        \/\/ Fix Word pasting\r\n        $content = strtr($content, $wp_htmltranswinuni);\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Desde hace bastante tiempo tengo problemas con mi blog WordPress y el PlanetPlanet, este \u00faltimo no era capaz de entender mi feed para agregar mis posts. Por lo poco que investigu\u00e9 averigu\u00e9 que se trataba del caracter &#038; que no lo interpretaba bien el planet, la \u00fanica soluci\u00f3n que encontr\u00e9 era crear un feed nuevo &hellip; <a href=\"https:\/\/www.marblestation.com\/?p=183\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Problemas entre Planet y WordPress<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,6],"tags":[],"class_list":["post-183","post","type-post","status-publish","format-standard","hentry","category-espanyol","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=183"}],"version-history":[{"count":1,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/183\/revisions"}],"predecessor-version":[{"id":1741,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/183\/revisions\/1741"}],"wp:attachment":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}