【トラブル】【MySQL】SJISの「十」とMySQLに登録した場合文字化けを起こす

問題

 * MySQLに「五十嵐」と登録したところ、文字化けを起こってしまった。

原因

 * MySQLに「五十嵐」と登録したところ、文字化けを起こってしまった。

解決方法

 * 解決方法1 : 「十」の代わりに、「十\」として登録する
 * 解決方法2 : Shift_JIS を使うのをやめ、他のコードにする(UTF-8など)。

解決方法1

サンプルプログラム

<?php
/*
【前提条件】
CREATE TABLE person
(	
	id INTEGER NOT NULL AUTO_INCREMENT,
	name TEXT NOT NULL,
	PRIMARY KEY (id)
);

INSERT INTO person (name) VALUES ('五十嵐さん');
INSERT INTO person (name) VALUES ('五十\嵐さん');
SELECT * FROM person;
が登録されております。

1番目は、文字化けるけど、
2番目は、文字化けずに表示する。
*/

try
{
$connectionId = mysql_connect("XXXXX:1000", "dataBaseName", "passowrd") or die(mysql_error());   
mysql_select_db('dataBaseName') or die(mysql_error());

// SQL クエリを実行
$sql = "SELECT * FROM person";
$result = mysql_query($sql) or die(mysql_error());
$count = mysql_num_rows($result);

if ($count > 0)
{
	while ($row = mysql_fetch_array($result))
	{
		echo "id : " . $row['id'] . "<br>";
		echo "Name : " . $row['name'] . "<br>";
	}

	echo "<br>Finished!";
	exit();}
else
{
	echo "\nError...";
	exit();
}

// 結果セットを開放し、接続を閉じます。
mysql_free_result($result);
mysql_close($connectionId);
}
catch (Exception $e)
{
echo "Error:", $e->getMessage(), "\n";
}
?>