Мой вопрос отличается от этого один . Я пытаюсь исправить неисправную кодировку, но я не знаю, что делать дальше.
В моей базе данных у меня есть это имя:
mysql> select filename from file WHERE filename LIKE 'MAC%';
+-------------------------------------------------+
| filename |
+-------------------------------------------------+
| MAC-1600PVå–扱説明書.pdf |
+-------------------------------------------------+
1 row in set (0.00 sec)
Но в моей файловой системе файл называется:
$ ls files/*MAC*
files/MAC-1600PV取扱説明書.pdf
Я попытался распаковать обе строки из PHP, и содержимое отличается:
Последовательность utf-8, считанная из файловой системы:
=> "MAC-1600PV取扱説明書"
>>> unpack('C*', $u)
...
7 => 48,
8 => 48,
9 => 80,
10 => 86,
11 => 195,
12 => 165,
13 => 226,
14 => 128,
15 => 147,
16 => 195,
17 => 166,
18 => 226,
А для чтения из базы данных:
...
7 => 48,
8 => 48,
9 => 80,
10 => 86,
11 => 229,
12 => 143,
13 => 150,
14 => 230,
15 => 137,
16 => 177,
Так что в какой-то момент я потерял оригинальную кодировку, и я понятия не имею, как исправить мою базу данных, которая находится в utf8mb4
.
Любой совет?