svn: /phpdoc/ja/trunk/reference/ mysqli/mysqli/set-charset.xml mysqlinfo/concepts.xml
[email protected] (Yoshinari Takaoka) Tue, 15 Dec 2020 03:45:46 +0000
| Newsgroups | php.doc.ja |
|---|---|
| Message-ID | <[email protected]> |
mumumu Tue, 15 Dec 2020 03:45:46 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=352093
Log:
utf8 has been deprecated for past 10 years
Closes GH-252.
Changed paths:
U phpdoc/ja/trunk/reference/mysqli/mysqli/set-charset.xml
U phpdoc/ja/trunk/reference/mysqlinfo/concepts.xml
Modified: phpdoc/ja/trunk/reference/mysqli/mysqli/set-charset.xml
===================================================================
--- phpdoc/ja/trunk/reference/mysqli/mysqli/set-charset.xml 2020-12-15 03:33:31 UTC (rev 352092)
+++ phpdoc/ja/trunk/reference/mysqli/mysqli/set-charset.xml 2020-12-15 03:45:46 UTC (rev 352093)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 350059 Maintainer: takagi Status: ready -->
+<!-- EN-Revision: 352075 Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->
<refentry xml:id="mysqli.set-charset" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
@@ -90,9 +90,9 @@
printf("Initial character set: %s\n", $mysqli->character_set_name());
-/* 文字セットを utf8 に変更します */
-if (!$mysqli->set_charset("utf8")) {
- printf("Error loading character set utf8: %s\n", $mysqli->error);
+/* 文字セットを utf8mb4 に変更します */
+if (!$mysqli->set_charset("utf8mb4")) {
+ printf("Error loading character set utf8mb4: %s\n", $mysqli->error);
exit();
} else {
printf("Current character set: %s\n", $mysqli->character_set_name());
@@ -116,9 +116,9 @@
printf("Initial character set: %s\n", mysqli_character_set_name($link));
-/* 文字セットを utf8 に変更します */
-if (!mysqli_set_charset($link, "utf8")) {
- printf("Error loading character set utf8: %s\n", mysqli_error($link));
+/* 文字セットを utf8mb4 に変更します */
+if (!mysqli_set_charset($link, "utf8mb4")) {
+ printf("Error loading character set utf8mb4: %s\n", mysqli_error($link));
exit();
} else {
printf("Current character set: %s\n", mysqli_character_set_name($link));
@@ -132,7 +132,7 @@
<screen>
<![CDATA[
Initial character set: latin1
-Current character set: utf8
+Current character set: utf8mb4
]]>
</screen>
</example>
Modified: phpdoc/ja/trunk/reference/mysqlinfo/concepts.xml
===================================================================
--- phpdoc/ja/trunk/reference/mysqlinfo/concepts.xml 2020-12-15 03:33:31 UTC (rev 352092)
+++ phpdoc/ja/trunk/reference/mysqlinfo/concepts.xml 2020-12-15 03:45:46 UTC (rev 352093)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 338913 Maintainer: takagi Status: ready -->
+<!-- EN-Revision: 352075 Maintainer: takagi Status: ready -->
<chapter xml:id="mysqlinfo.concepts" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>コンセプト</title>
<para>
@@ -152,16 +152,16 @@
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
// これは $mysqli->real_escape_string(); に影響を及ぼしません
-$mysqli->query("SET NAMES utf8");
+$mysqli->query("SET NAMES utf8mb4");
// これも $mysqli->real_escape_string(); に影響を及ぼしません
-$mysqli->query("SET CHARACTER SET utf8");
+$mysqli->query("SET CHARACTER SET utf8mb4");
// しかしこの方法なら $mysqli->real_escape_string(); にもきちんと影響します
-$mysqli->set_charset('utf8');
+$mysqli->set_charset('utf8mb4');
-// いっぽう、こちらは影響を及ぼしません (utf-8 と utf8 の違いに注目) -- ここではハイフンを使ってはいけません
-$mysqli->set_charset('utf-8');
+// いっぽう、こちらは影響を及ぼしません (UTF-8 と utf8mb4 の違いに注目) -- ここではハイフンを使ってはいけません
+$mysqli->set_charset('UTF-8');
?>
]]>
@@ -175,8 +175,10 @@
<note>
<title>UTF-8 でありがちなミス</title>
<para>
- MySQL の文字セット名はハイフンを含まないので、MySQL で UTF-8 を表す文字セットは
- "utf8" が正解です。"utf-8" ではないので、"utf-8" と指定しても文字セットは変わりません。
+ MySQL の文字セット名はハイフンを含まないので、MySQL で
+ (3バイト以下の UTF-8 Unicode エンコーディング という意味の) UTF-8 を表す文字セットは
+ "utf8" が正解です。"UTF-8" ではありません。そのため、
+ "UTF-8" と指定しても文字セットは変わらず、エラーが発生します。
</para>
</note>
@@ -190,8 +192,8 @@
printf("Initial character set: %s\n", $mysqli->character_set_name());
-if (!$mysqli->set_charset('utf8')) {
- printf("Error loading character set utf8: %s\n", $mysqli->error);
+if (!$mysqli->set_charset('utf8mb4')) {
+ printf("Error loading character set utf8mb4: %s\n", $mysqli->error);
exit;
}
@@ -211,7 +213,7 @@
<programlisting role="php">
<![CDATA[
<?php
-$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8", 'my_user', 'my_pass');
+$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8mb4", 'my_user', 'my_pass');
?>
]]>
</programlisting>
@@ -227,7 +229,7 @@
echo 'Initial character set: ' . mysql_client_encoding($conn) . "\n";
-if (!mysql_set_charset('utf8', $conn)) {
+if (!mysql_set_charset('utf8mb4', $conn)) {
echo "Error: Unable to set the character set.\n";
exit;
}