Página 2 de 2
Dúvida com Acentuação em Mysql
Enviado: 25 Mai 2022 17:13
por rossine
Olá Itamar,
Minhas variáveis aqui estão assim:
Código: Selecionar todos
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.
Dúvida com Acentuação em Mysql
Enviado: 25 Mai 2022 17:40
por rossine
Olá,
Sim, está assim:
Código: Selecionar todos
<!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
Eu uso isto na passagem dos valores dentro do JSON:
Mudei meu servidor aqui:
Executando os comandos:
Código: Selecionar todos
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:
Código: Selecionar todos
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:
Dúvida com Acentuação em Mysql
Enviado: 25 Mai 2022 18:35
por Itamar M. Lins Jr.
Olá!
Tá errado ai no html tem " sobrando.
https://www.w3schools.com/tags/att_meta_charset.asp
Código: Selecionar todos
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<h1>My Website</h1>
<p>Some text...</p>
</body>
</html>
Simplifica ai a linha->
Código: Selecionar todos
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Saudações,
Itamar M. Lins Jr.
Dúvida com Acentuação em Mysql
Enviado: 25 Mai 2022 18:55
por Itamar M. Lins Jr.
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.
Dúvida com Acentuação em Mysql
Enviado: 25 Mai 2022 21:42
por rossine
Olá,
Consegui resolver da seguinte maneira:
Código: Selecionar todos
cJson := hb_jsonEncode( aMsg, .F. ) // , "UTF8EX" ) <- Tirei esta referencia
e inclui no arquivo .PHP a função "utf8_encode()" :
Código: Selecionar todos
$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:
Código: Selecionar todos
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.