Image

ナレッジベース → MariaDBデータベースに接続する際のPHPでの強制エンコーディング指定

[スクリプト]
公開日: 26.12.2024

デフォルトでは、すべてのホスティングプランでデータベース接続に utf8mb4 エンコーディングが使用されます。ウェブサイトがかなり前に開発された場合、エンコーディングが正しく表示されないことが稀にあります。

通常の文字の代わりに「文字化け」と呼ばれる、機械の象形文字のような記号が表示されます。これは、データベースとそのすべてのテーブルが utf8mb4 とは異なるエンコーディングであるためです。その間、すべての古いウェブサイトは Windows-1251 エンコーディングを使用して開発されました。

不正な表示を修正するには、CMSでデータベース接続のエンコーディングを強制的に指定する必要があります。

PHP設定ファイルを開き、データベース接続の名前、ログイン、パスワードを指定する行の後に、以下の行を追加します:

ini_set('default_charset', 'Windows-1251');

この設定は、接続エンコーディングを強制的に指定します。

設定ファイルの最終バージョンは次のようになります:

...
$hostname_dbconn = "localhost";
$database_dbconn = "DATABASE-NAME";
$username_dbconn = "DATABASE-USER";
$password_dbconn = "PASSWORD";

ini_set('default_charset', 'Windows-1251');
...

今、キーボードショートカット Ctrl + F5(ブラウザキャッシュをクリア)を使用してページを更新します。これで、サイトのエンコーディング表示が正しく動作するはずです。

サイトがどのエンコーディングを使用しているかを確認するには、ブラウザでキーボードショートカット Ctrl + u を押します。開いたタブで、HTMLコードの先頭に次のような行を探します:

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />




No Comments Yet