0

データベースからテキストを取得しようとしています。データベースでは「◆」と表示され、問題ありません。

ただし、データベースからレコードを取得すると、ページに疑問符 (中央に白い ? がある黒いボックスではなく) として表示されます。

例えば:

♦ お支払いが必要です ♦</p>

表示されます:

? 支払う必要がありますか?

ラテン語ではデータベース構造が正しく保存されなかったため、データベース構造を utf8-bin としてセットアップしました。私は何時間も見回し、記事を読みましたが、どこにも答えが見つかりません。データベースから正しい方法でプルする方法が必要です。挿入できますが、取得できません。意味がありません。

すべての助けに感謝します。

4

5 に答える 5

0

mysql_set_charset で文字セットを設定します。

bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )

ページコンテンツの文字セットがutf-8であることを確認してください

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
于 2013-04-10T19:01:14.840 に答える
0

さて、アプリケーションで使用するエンコードを決定する必要があります。IMHO utf8 が最適なエンコードであるため、IDE またはテキスト エディターを UTF-8 のみで動作させ、ページが UTF-8 であることをブラウザーに伝える必要があります。

<meta http-equiv="content-type" content="text/html; charset=utf-8">

そして、PDO との最新の接続方法を使用します。

<?php
$pdo = new PDO(
    'mysql:host=127.0.0.1;dbname=test',
    "username",
    "password",
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

UTF-8 を使用したデータベースの作成:

CREATE DATABASE "test" CHARACTER SET utf8 COLLATE utf8_general_ci

UTF-8 を使用してテーブルを作成する:

CREATE TABLE `test` ( 
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 
`name` VARCHAR( 40 ) NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; 

utf8_encode と utf8_decode を使用しても意味がありません。コードが読めなくなります。

申し訳ありませんが私の英語、私はブラジル人です :D

于 2013-04-10T19:09:49.103 に答える