Estou tendo problemas com acentuação, das informações que estão no banco de dados.
No servidor que está na produção atualmente, rodando uma Intranet, está funcionando normalmente, numa versão mais antiga no XAMPP.
MySQL: 5.1.41
PHP: 5.4
Collation do BD: utf8_general_ci
Segue, como está no banco de dados, e como aparece no HTML.
---
Porém, formatei o meu computador recentemente, e nele instalei a versão mais atual do XAMPP, com PHP 8.2.
Criei o bando de dados também com a mesma collation, utf8_general_ci, porém no meu localhost, os acentos aparecem todos zuados.
Uma coisa que percebi, é que no servidor da Intranet, no banco de dados, os acentos ficam zuados, mas no PHP/HTML mostra os acentos corretamente.
Já no meu computador, os acentos ficam com problema.
É alguma relação com a versão do MySQL? É a Collation errada que estou usando?
Bom dia,
Estou com problema com acentos no PHPMailer (classe para envio de e-mails). Conforme anexo.
Na configuração do e-mail de destinatário, o nome do destinatário tem acento, quando enviado o e-mail, ao invés de aparecer o nome, aparece aqueles caracteres ali (conforme anexo).
Acontece o mesmo se eu coloco acentuação no assunto do e-mail.
require("../phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsHTML(true);
$mail->CharSet = 'utf-8';
Será que pode ser algo no php.ini? Lá eu vi que está marcado o default_charset = 'utf-8'. Ou não tem nada a ver?
EDITANDO:
Funciona os acentos no corpo do e-mail. Só não funciona no ASSUNTO e no NOME DO DESTINATÁRIO.
Tenho uma function que recupera valores de um cookie.
O problema é que truca quando há algum caractere com acento.
Exemplo
Tássia - retorna assim: T%C3%A1ssia
Acho que isso é UNICODE, né?
Bom, como é grande a lista de caracteres que podem receber acento, quero saber sem alguém já essa listinha pronta pra eu montar um replace.
Fiz um código que funciona. Só preciso mesmo dessa listinha para encher as variáveis unicode e normal
function charDecode(str)
{
var unicode = '%C3%A0,%C3%A1'
, normal = 'à,á';
var strUnicode = unicode.split(',');
for(j = 0; j < strUnicode.length; j++){
for(k = 0; k < normal.length; k++)
{
var tratada = str.replace(strUnicode[j], normal[k])
}
}
return tratada;
}
Obrigado desde já.
Tenho uma tabela Character Set: UFT8 e Collation: uft8_general_ci.
Não consigo fazer um select onde possa ignorando maiúsculas, minúsculas, acentos e caracteres especiais.
Já varri a internet e nada no original ou adaptado funcionou.
Ignora maiúsculas e minúsculas ainda dá certo mais quanto vai para acentuação fico perdido.
Tentei algo como:
"SELECT DISTINCT * FROM livros WHERE tituloLivro LIKE _utf8'%".$termo."%' COLLATE utf8_unicode_ci OR tituloLivro LIKE '%".$termo."%'"
Usei uft8_encode e uft8_decode na variável termo e ainda nada.