{"id":3333,"date":"2020-02-02T14:49:04","date_gmt":"2020-02-02T17:49:04","guid":{"rendered":"http:\/\/tiagofick-site.test:30000\/?p=3333"},"modified":"2023-01-18T18:23:44","modified_gmt":"2023-01-18T21:23:44","slug":"problemas-com-charset-em-php","status":"publish","type":"post","link":"https:\/\/tiagofick.com.br\/site\/problemas-com-charset-em-php\/","title":{"rendered":"Problemas com Charset em PHP"},"content":{"rendered":"\n<p class=\"has-small-font-size wp-block-paragraph\">Muitas vezes recebemos informa\u00e7\u00e3o de algum banco de dados e\/ou arquivo com um charset desconhecido, ou que n\u00e3o seja compat\u00edvel com a interface de nossa aplica\u00e7\u00e3o.Utilizando as fun\u00e7\u00f5es mb_convert_encoding e mb_detect_encoding (nativas do php) consegue-se identificar na maior parte dos casos e converter a stringpara o charset desejado, n\u00e3o prejudicando assim a exibi\u00e7\u00e3o do texto.<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">O &#8220;grande truque&#8221; est\u00e1 na utiliza\u00e7\u00e3o da fun\u00e7\u00e3o mb_detect_encoding, que serve para identificar o charset recebido e, caso a fun\u00e7\u00e3o n\u00e3o consiga identificar, a mesma retornafalse.<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\">Perante isso, definimos um default em caso de retorno false e passamos esses valores por par\u00e2metro para fun\u00e7\u00e3o mb_convert_encoding que ir\u00e1 realizar a convers\u00e3o:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>\n    $str = \"Fun\u00e7\u00e3o para verifica\u00e7\u00e3o de charset\";\n    $detect = mb_detect_encoding($str);\n    $charset = $detect === false ? 'UTF-8' : $detect;\n    echo mb_convert_encoding($str, \"ISO-8859-1\", $charset);\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"has-normal-font-size wp-block-paragraph\"><strong>Refer\u00eancias<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.php.net\/manual\/pt_BR\/function.mb-convert-encoding.php\" target=\"_blank\">mb_convert_encoding<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.php.net\/manual\/pt_BR\/function.mb-detect-encoding.php\" target=\"_blank\">mb_detect_encoding<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Muitas vezes recebemos informa\u00e7\u00e3o de algum banco de dados e\/ou arquivo com um charset desconhecido, ou que n\u00e3o seja compat\u00edvel com a interface de nossa aplica\u00e7\u00e3o.Utilizando as fun\u00e7\u00f5es mb_convert_encoding e&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":3427,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-3333","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacao-php"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/posts\/3333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/comments?post=3333"}],"version-history":[{"count":1,"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/posts\/3333\/revisions"}],"predecessor-version":[{"id":3410,"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/posts\/3333\/revisions\/3410"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/media\/3427"}],"wp:attachment":[{"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/media?parent=3333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/categories?post=3333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tiagofick.com.br\/site\/wp-json\/wp\/v2\/tags?post=3333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}