Pergunta

Estou inserindo os seguintes personagens no meu banco de dados: 汉字 / 漢字

Esta é a meta etiqueta na página que está inserindo os caracteres:

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

Eu alterei todas as colunas da minha mesa que estão segurando os personagens para serem utf8_unicode_ci

Os personagens estrangeiros aparecem como So no banco de dados: 汉字 / 漢字

Quando uso uma instrução SQL para exibir esses caracteres estrangeiros em uma página, eles exibem corretamente novamente como: 汉字 / 漢字

Acho que tenho alguma configuração que não está correta no meu banco de dados, pois a armazena corretamente, mas não a exibe corretamente.

O que posso fazer para fazer com que os personagens de língua estrangeira sejam exibidos corretamente no meu banco de dados?

EDITAR: Aqui está minha inserção:

$sql = 'INSERT INTO orders (foreign_characters)
        VALUES (?)';

$stmt = $conn->stmt_init();
$stmt->bind_param('s', $_SESSION['foreign_characters']);
$inserted = $stmt->execute();
Foi útil?

Solução

A conexão com o banco de dados também é codificada UTF-8?

Experimente: logo após se conectar ao banco de dados MySQL, execute a seguinte consulta.

SET NAMES utf8;

Isso deve fazer o truque (veja Mysql doc). (Sim, você tem que fazer isso toda vez que se conectar.)

BTW: Não confie apenas no <meta>-Tag, envie o cabeçalho HTTP apropriado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top