Clipper On Line • Ver Tópico - Dúvida com Acentuação em Mysql

Dúvida com Acentuação em Mysql

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Dúvida com Acentuação em Mysql

Mensagempor rossine » 25 Mai 2022 17:13

Olá Itamar,

Minhas variáveis aqui estão assim:

Variable_name    Value    
character_set_client    utf8mb4
character_set_connection    utf8mb4
character_set_database    utf8
character_set_filesystem    binary
character_set_results    utf8mb4
character_set_server    latin1
character_set_system    utf8
character_sets_dir    /usr/share/mysql/charsets/
collation_connection    utf8mb4_unicode_ci
collation_database    utf8_unicode_ci
collation_server    latin1_swedish_ci


Repare que "character_set_server" = "latin1" e "collation_server" = "latin1_swedish_ci", talvez possa ser isto.
Vou ver se tem como mudar isto.
Estou usando um servidor externo, não é local não.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 313
Data de registro: 06 Ago 2007 09:57
Cidade/Estado: Divinópolis-MG
Curtiu: 1 vez
Mens.Curtidas: 21 vezes

Dúvida com Acentuação em Mysql

Mensagempor rossine » 25 Mai 2022 17:40

Olá,

Sim, está assim:
<!DOCTYPE html>
<html>
<head>
   <title>Teste</title>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   <link rel="icon" href="images/qi.ico">
</head>
<body>
   <div class="corpo" style="color: rgb( 255,255,244) ; background-color: rgb( 0,0,255); text-align: center;">
      <h1>Página principal</h1>
   </div>
</body>
</html>


Eu colocando ou não esta linha, não muda nada
hb_cdpSelect( "UTF8EX" )


Eu uso isto na passagem dos valores dentro do JSON:

cJson   := hb_jsonEncode( aMsg, .F., "UTF8EX" )


Mudei meu servidor aqui:

Executando os comandos:

set global character_set_server = utf8;
set global character_set_database = utf8;
set global collation_server = utf8_unicode_ci;
set global character_set_client =utf8;
set global character_set_connection=utf8;
set global character_set_results=utf8;


agora ficou assim:


show variables like 'collation%';

collation_connection    utf8mb4_unicode_ci
collation_database    utf8_unicode_ci
collation_server    utf8_unicode_ci

show variables like '%character%';

character_set_client    utf8mb4
character_set_connection    utf8mb4
character_set_database    utf8
character_set_filesystem    binary
character_set_results    utf8mb4
character_set_server    utf8
character_set_system    utf8
character_sets_dir    /usr/share/mysql/charsets/



Mas ainda recebendo acentuação errada:

MecÔnica bßsica de VeÝculos
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 313
Data de registro: 06 Ago 2007 09:57
Cidade/Estado: Divinópolis-MG
Curtiu: 1 vez
Mens.Curtidas: 21 vezes

Dúvida com Acentuação em Mysql

Mensagempor Itamar M. Lins Jr. » 25 Mai 2022 18:35

Olá!
Tá errado ai no html tem " sobrando.
https://www.w3schools.com/tags/att_meta_charset.asp
<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">
</head>

<body>
<h1>My Website</h1>
<p>Some text...</p>
</body>

</html>


Simplifica ai a linha->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Dúvida com Acentuação em Mysql

Mensagempor Itamar M. Lins Jr. » 25 Mai 2022 18:55

Olá!
Peguei aqui seu texto em html, está ok.
Deve ser depois que grava no BD, que está, ou gravando errado ou lendo do BD convertendo errado.
Ou no editor que não deve estar UTF-8.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Dúvida com Acentuação em Mysql

Mensagempor rossine » 25 Mai 2022 21:42

Olá,

Consegui resolver da seguinte maneira:

   cJson   := hb_jsonEncode( aMsg, .F. ) // , "UTF8EX" ) <- Tirei esta referencia


e inclui no arquivo .PHP a função "utf8_encode()" :

    $parametros = json_decode( utf8_encode( file_get_contents( "php://input" ) ) ) ;


Com isto a acentuação ficou gravada no BD corretamente e também retornada corretamente para meu sistema em harbour:

Legislação de Trânsito
Sinalização de Trânsito
Direção Defensiva
Primeiros Socorros
Meio Ambiente e Cidadania
Mecânica básica de Veículos


Obrigado pela ajuda de todos.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
rossine
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 313
Data de registro: 06 Ago 2007 09:57
Cidade/Estado: Divinópolis-MG
Curtiu: 1 vez
Mens.Curtidas: 21 vezes

Anterior



Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro