Ir para conteúdo
View in the app

A better way to browse. Learn more.

Portal do Host

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Acentuação / Acentuacao / Acentua?o

Featured Replies

Postado

Pessoal,

 

Como vocês tem lidado com acentuação nos dados de clientes como nome, endereço etc. ?

Tem armazenado em ISO 8859-1 ?

Tem armazenado em UTF-8 ? Se sim, pq ? 

Tem filtro para acentuação HTML (&acute) ? 


Postado

Pessoal,

 

Como vocês tem lidado com acentuação nos dados de clientes como nome, endereço etc. ?

Tem armazenado em ISO 8859-1 ?

Tem armazenado em UTF-8 ? Se sim, pq ? 

Tem filtro para acentuação HTML (&acute) ? 

 

A acentuação é baseado no charset que o cliente define após instalação.

 

A instalação padrão é utf-8 e o próprio WHMCS que irá fazer o armazenamento de acordo com o charset x codificação na base de dados.

O cliente em si não se preocupa com isso... os programadores que terão que "se virar nos 30" para codificar/decodificar caso seja necessário fornecer esses dados para uma outra interface.

 

Existe uma variável global no WHMCS que armazena o charset do sistema.

 

 

$CONFIG['Charset'];

 

Caso essa variável não seja retornada faça uma consulta em MySQL

 

 

SELECT * FROM tblconfiguration WHERE setting='Charset';

 

Dependendo do charset, exemplo UTF-8 para ISO-8859-1 utilizando o utf8_encode você resolve isso rapidinho!


Postado
  • Autor

Entendi. Não há risco de um campo entrado por cliente vir com HTMLs tipo &acute ? 



Postado
  • Autor

Coloquei filtragem de HTML por via das dúvidas. Ficou assim:<pre class="_prettyXprint _lang-auto _linenums:0">

function _registrobr_normaliza($string) {

$string = str_replace('&amp;nbsp;',' ',$string);

$string = trim($string);

$string = html_entity_decode($string,ENT_QUOTES,'UTF-8');

//Instead of The Normalizer class ... requires (PHP 5 &gt;= 5.3.0, PECL intl &gt;= 1.0.0)

$normalized_chars = array( 'Š'=&gt;'S', 'š'=&gt;'s', 'Ð'=&gt;'Dj','Ž'=&gt;'Z', 'ž'=&gt;'z', 'À'=&gt;'A', 'Á'=&gt;'A', 'Â'=&gt;'A', 'Ã'=&gt;'A', 'Ä'=&gt;'A', 'Å'=&gt;'A', 'Æ'=&gt;'A', 'Ç'=&gt;'C', 'È'=&gt;'E', 'É'=&gt;'E', 'Ê'=&gt;'E', 'Ë'=&gt;'E', 'Ì'=&gt;'I', 'Í'=&gt;'I', 'Î'=&gt;'I', 'Ï'=&gt;'I', 'Ñ'=&gt;'N', 'Ò'=&gt;'O', 'Ó'=&gt;'O', 'Ô'=&gt;'O', 'Õ'=&gt;'O', 'Ö'=&gt;'O', 'Ø'=&gt;'O', 'Ù'=&gt;'U', 'Ú'=&gt;'U', 'Û'=&gt;'U', 'Ü'=&gt;'U', 'Ý'=&gt;'Y', 'Þ'=&gt;'B', 'ß'=&gt;'Ss','à'=&gt;'a', 'á'=&gt;'a', 'â'=&gt;'a', 'ã'=&gt;'a', 'ä'=&gt;'a', 'å'=&gt;'a', 'æ'=&gt;'a', 'ç'=&gt;'c', 'è'=&gt;'e', 'é'=&gt;'e', 'ê'=&gt;'e', 'ë'=&gt;'e', 'ì'=&gt;'i', 'í'=&gt;'i', 'î'=&gt;'i', 'ï'=&gt;'i', 'ð'=&gt;'o', 'ñ'=&gt;'n', 'ò'=&gt;'o', 'ó'=&gt;'o', 'ô'=&gt;'o', 'õ'=&gt;'o', 'ö'=&gt;'o', 'ø'=&gt;'o', 'ù'=&gt;'u', 'ú'=&gt;'u', 'û'=&gt;'u', 'ý'=&gt;'y', 'ý'=&gt;'y', 'þ'=&gt;'b', 'ÿ'=&gt;'y', 'ƒ'=&gt;'f', ' ' =&gt; '');

$string = strtr($string,$normalized_chars);

$string = strtolower($string);

return $string;

}

function _registrobr_StateProvince($sp) {

if (strlen($sp)==2) return $sp;

$estado = _normaliza($sp);

$map = array(

"acre" =&gt; "AC",

"alagoas" =&gt; "AL",

"amazonas" =&gt; "AM",

"amapa" =&gt; "AP",

"bahia" =&gt; "BA",

"baia" =&gt; "BA",

"ceara" =&gt; "CE",

"distritofederal" =&gt; "DF",

"espiritosanto" =&gt; "ES",

"espiritusanto" =&gt; "ES",

"goias" =&gt; "GO",

"goia" =&gt; "GO",

"maranhao" =&gt; "MA",

"matogrosso" =&gt; "MT",

"matogroso" =&gt; "MT",

"matogrossodosul" =&gt; "MS",

"matogrossosul" =&gt; "MS",

"matogrossodesul" =&gt; "MS",

"minasgerais" =&gt; "MG",

"minasgeral" =&gt; "MG",

"para" =&gt; "PA",

"paraiba" =&gt; "PB",

"parana" =&gt; "PR",

"pernambuco" =&gt; "PE",

"pernanbuco" =&gt; "PE",

"piaui" =&gt; "PI",

"riodejaneiro" =&gt; "RJ",

"riograndedonorte" =&gt; "RN",

"riograndenorte" =&gt; "RN",

"rondonia" =&gt; "RO",

"riograndedosul" =&gt; "RS",

"riograndedesul" =&gt; "RS",

"riograndesul" =&gt; "RS",

"roraima" =&gt; "RR",

"santacatarina" =&gt; "SC",

"sergipe" =&gt; "SE",

"saopaulo" =&gt; "SP",

"tocantins" =&gt; "TO"

);

if(!empty($map[$estado])){

return $map[$estado];

} else {

return $sp;

}

}

</pre>


Postado
  • Autor

Pessoal, continuando sobre o tema acentuação, vocês já notaram se os dados com acentuação são passados para módulos (pagamento, registro de domínios) ? Estamos com essa impressão ainda não confirmada de que isso é podado... será alguma opção ? 


Postado

Pessoal, continuando sobre o tema acentuação, vocês já notaram se os dados com acentuação são passados para módulos (pagamento, registro de domínios) ? Estamos com essa impressão ainda não confirmada de que isso é podado... será alguma opção ? 

 

Módulos de pagamentos a maioria trabalha em UTF-8.

A ResellerClub antigamente tinha restrições com acentuação ( lógica simples, inglês não tem acentuação ).

 

As últimas renovações e registros que fiz não tive problemas ( mesmo enviando caracteres ) veja mais http://docs.whmcs.com/ResellerClub#An_unknown_fault_occured_-_please_contact_support


Postado
  • Autor

Módulos de pagamentos a maioria trabalha em UTF-8.

A ResellerClub antigamente tinha restrições com acentuação ( lógica simples, inglês não tem acentuação ).

 

As últimas renovações e registros que fiz não tive problemas ( mesmo enviando caracteres ) veja mais http://docs.whmcs.com/ResellerClub#An_unknown_fault_occured_-_please_contact_support

 

A API do Registro.br aceitua acentuação, apesar de apenas em ISO 8859-1 e é justamente nisso que estamos trabalhando para converter os dados vindos com o Charset que estiver em uso no WHMCS. 

O que notamos é que o parâmetro que usavamos vinha sempre em ASCII, mas achamos um onde vem acentuado no Charset do sistema. 


Postado

A API do Registro.br aceitua acentuação, apesar de apenas em ISO 8859-1 e é justamente nisso que estamos trabalhando para converter os dados vindos com o Charset que estiver em uso no WHMCS. 

O que notamos é que o parâmetro que usavamos vinha sempre em ASCII, mas achamos um onde vem acentuado no Charset do sistema. 

 

Isso é simples de resolver... em um outro post até citei a solução.

 

Detectar o charset do cliente e converter se necessário!


Postado
  • Autor

Isso é simples de resolver... em um outro post até citei a solução.

 

Detectar o charset do cliente e converter se necessário!

 

Essa parte já estava no código. O problema é que algumas variáveis são auto-convertidas pelo WHMCS para ASCII, possivelmente por problemas como o da ResellClub. 


Visitante
Este tópico está impedido de receber novos posts.

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Informação Importante

Concorda com os nossos termos?

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.