Moodleを使用したサイト構築を行っていて、どこかのサイトを参考に文字コードをUTF-8からutf8mb4に変更しました。
具体的には /etc/my.cnf に以下の記述を加えました。
[client]
default-character-set = utf8mb4
[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
skip-character-set-client-handshake
[mysql]
default-character-set = utf8m
すると以下のようなエラーが表示され、webサイトで文字が表示できなくなりました。
Warning: htmlspecialchars(): charset `UTF-8mb4' not supported, assuming utf-8 in /var/www/html/moodle/lib/weblib.php on line 100
エラー文で指定されたweblib.phpの86~101行目が以下になります。
/**
- Add quotes to HTML characters.
- Returns $var with HTML characters (like "<", ">", etc.) properly quoted.
- Related function {@link p()} simply prints the output of this function.
- @param string $var the string potentially containing HTML characters
- @return string
*/
function s($var) {
if ($var === false) { return '0'; return preg_replace('/&#(\d+|x[0-9a-f]+);/i', '&#$1;', htmlspecialchars($var, ENT_QUOTES | ENT_HTML401 | ENT_SUBSTITUTE));
}
下手に変更を加えてしまったのですが、修正の仕方がわかりません。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/07 05:55
2020/09/07 05:59
2020/09/07 06:06