Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Exemplo prático sobre como preparar o PHP, o HTML e o Banco de dados MySQL para um determinado conjunto de caracteres.
O charset utilizado neste tutorial é o conjunto multibyte UTF-8.
Para este exercício, utilizaremos o editor de textos, EditPad Lite (versão brasileira)
Tela inicial do EditPad Lite
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif
/applications/core/interface/imageproxy/imageproxy.php?img=http://img214.imageshack.us/img214/8672/001w.png&key=0f332836861f8e4b5b6fa4c8010684fc154280df818fdbc73192c0feaab57206" alt="Imagem Postada" />
Clique em "Conversões" -> "Codificação do Texto"
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif
/applications/core/interface/imageproxy/imageproxy.php?img=http://img214.imageshack.us/img214/7518/002q.png&key=0531d5c1f2a8f4fa30a7e947ef25101f43b079d86a3d48a059ace770ed9b8628" alt="Imagem Postada" />
Escolha "Unicode, UTF-8"
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif
/applications/core/interface/imageproxy/imageproxy.php?img=http://img214.imageshack.us/img214/4748/003y.png&key=9b2bdf4ae0fc8bd234d7671ce708307bbf32c0c52ff1c3e26eed12c39f121587" alt="Imagem Postada" />
OK, agora, cole o seguinte código e salve como "index.html"
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif
/applications/core/interface/imageproxy/imageproxy.php?img=http://img214.imageshack.us/img214/4368/004j.png&key=eb66a557b8208e04cd96e1b70ea9159f1760bef10293cd0b04991b862310ed7b" alt="Imagem Postada" />
<html>
<title>PHP, HTML, MySQL - Charset Encoding</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
</head>
<body>
<form action="char_test.php" method="POST">
<textarea name="text" cols="25" rows="10">
English
Português
日本語
中文
عربي
Ελληνικά
עִברִי
Čeština
हिन्दी
</textarea>
<input type="submit">
</form>
</body>
</html>
Abra uma nova aba no editor para criarmos um novo arquivo
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif
/applications/core/interface/imageproxy/imageproxy.php?img=http://img214.imageshack.us/img214/1417/006.png&key=5ae2cb94ef4f3283bcdc3f1df11e8125acf2b6adbff763c8144f476eec693d50" alt="Imagem Postada" />
Salve-o como "charset_test.php"
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif
http://img214.imageshack.us/img214/3240/007n.png
Cole o seguinte código:
<?php
$v = 'text';
$$v = false;
if( isset( $_POST[$v] ) )
{
$$v = $_POST[$v];
}
if( $$v )
{
$conn = mysql_connect( 'localhost', 'root', '' );
mysql_select_db( 'charset_test', $conn );
$sql = "INSERT INTO encoding ( `text` ) VALUES ( '" . $$v . "' );";
mysql_query( $sql, $conn );
mysql_close( );
}
?>
[<a href="./">inserir</a>] [<a href="list.php">exibir</a>]
Abra uma nova aba no editor para criarmos um novo arquivo
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif
http://img214.imageshack.us/img214/1417/006.png
Salve-o como "list.php"
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif
http://img2.imageshack.us/img2/3249/013.png
Cole o seguinte código:
<html>
<title>PHP, HTML, MySQL - Charset Encoding</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head></head>
<body>
[<a href="./">inserir</a>]
<hr>
<?php
$conn = mysql_connect( 'localhost', 'root', '' );
mysql_select_db( 'charset_test', $conn );
$sql = "SELECT `text` FROM encoding ORDER BY `text` ASC;";
$data = mysql_query( $sql, $conn );
while( $l = mysql_fetch_array( $data, MYSQL_ASSOC ) )
{
echo PHP_EOL . '<hr>' . nl2br( $l['text'] );
}
mysql_close( );
?>
</body>
</html>
Base de dados para testes
para este exemplo,
nome do banco: charset_test
nome da tabela: encoding
CHARSET: utf8
COLLATE: utf8_general_ci ( A sigla "ci" significa "Case Insensitive" )
CREATE DATABASE charset_test;
USE charset_test;
CREATE TABLE `encoding` (
`id` int(4) NOT NULL auto_increment,
`text` varchar(100) NOT NULL default '',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
Acesse o local da página index.html
( exemplo: http://localhost/charset/ )
O conteúdo abaixo deverá aparecer na tela
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif
http://img2.imageshack.us/img2/4862/011t.png
[pressione o botão indicado pela seta vermelha]
Após o envio, a seguinte tela será exibida:
http://img214.imageshack.us/img214/6126/012k.png
* Clique em [inserir] para incluir mais dados
* Clique em [exibir] para listar os dados cadastrados
Obs: A partir do PHP 5.3.0, utilize o cabeçalho
header('Content-Type: text/html; charset=utf-8');em todas as páginas onde deseja que o conteúdo seja enviado como o respectivo encoding ao browser.Mesmo especificando a "Meta Tag HTML", o browser Firefox não reconhece, causando problemas na apresentação do conteúdo.
Carregando comentários...