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;
 }