{"id":10219,"date":"2018-06-16T10:08:46","date_gmt":"2018-06-16T08:08:46","guid":{"rendered":"https:\/\/www.dreamsworld.it\/emanuele\/?p=10219"},"modified":"2018-06-16T11:04:04","modified_gmt":"2018-06-16T09:04:04","slug":"replacing-invalid-utf-8-characters","status":"publish","type":"post","link":"https:\/\/www.dreamsworld.it\/emanuele\/2018-06-16\/replacing-invalid-utf-8-characters\/","title":{"rendered":"Replacing invalid UTF-8 characters"},"content":{"rendered":"<p>Recentemente ho configurato <a href=\"https:\/\/rclone.org\/\">rclone<\/a> sul mio <a href=\"https:\/\/www.dreamsworld.it\/emanuele\/2018-06-02\/nas-enterprise-a-casa-con-hp-e-freenas\/\">FreeNAS<\/a> nuovo di zecca per effettuare il backup (<em>sync schedulato con cron<\/em>) dei miei spazi FTP.<\/p>\n<p>Alcuni file per\u00f2 presentavano al loro interno dei <strong>caratteri non UTF-8<\/strong> e cos\u00ec rclone alzava dei warning &#8220;<em>Replacing invalid UTF-8 characters in &lt;filename&gt;<\/em>&#8220;.<\/p>\n<p>Ho voluto eliminare il problema e, grazie a Python, la soluzione \u00e8 di una <strong>semplicit\u00e0 micidiale<\/strong>. Basta entrare <strong>via SSH<\/strong> nella directory in cui sono presenti i file con charset differente e dare:<\/p>\n<p><code>python -c 'import os, re; [os.rename(i, unicode(i, \"utf-8\", \"ignore\")) for i in os.listdir(\".\")]'<\/code><\/p>\n<p>Un ulteriore <em>ls -A<\/em> mostrer\u00e0 la differenza. I punti interrogativi mostrati in precedenza al posto dei char fuori dal set dei caratteri saranno stati segati via.<\/p>\n<p><strong>Emanuele<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recentemente ho configurato rclone sul mio FreeNAS nuovo di zecca per effettuare il backup (sync schedulato con cron) dei miei spazi FTP. Alcuni file per\u00f2 presentavano al loro interno dei caratteri non UTF-8 e cos\u00ec rclone alzava dei warning &#8220;Replacing &hellip; <a href=\"https:\/\/www.dreamsworld.it\/emanuele\/2018-06-16\/replacing-invalid-utf-8-characters\/\">Leggi ancora &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[3],"tags":[623,2759,1844,653,640,2757,662,1394,2758],"class_list":["post-10219","post","type-post","status-publish","format-standard","hentry","category-computer","tag-caratteri","tag-charset","tag-guida","tag-guide","tag-how-to","tag-python","tag-shell","tag-ssh","tag-utf-8"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/posts\/10219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/comments?post=10219"}],"version-history":[{"count":0,"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/posts\/10219\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/media?parent=10219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/categories?post=10219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dreamsworld.it\/emanuele\/wp-json\/wp\/v2\/tags?post=10219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}