Я использую json_encode для вставки массива значений (например: <input name="ok[]">... в базе данных, не знаю, почему он вставил персидские слова как ["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"] он был ранее вставлен как: سید سعید داداشزاده .
Вывод базы данных ( select * from tabla ... ) по json_encode равен: [\"\\u0633\\u06cc\\u062f \\u0633\\u0639\\u06cc\\u062f \\u062f\\u0627\\u062f\\u0627\\u0634\\u0632\\u0627\\u062f\\u0647\"]"
В моей таблице (базы данных), сортировка этой строки – utf8_general_ci ?
Что я делаю для print("output of database") Персидские слова как سید سعید داداشزاده ?
json_encode кодирует все символы не-ascii с обозначением \uXXXX . Это не проблема, потому что любой json-декодер и javascript распознают это обозначение:
json_decode('["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]'); // array('سید سعید داداشزاده')
Однако кажется, что строка, которую вы получаете из базы данных, сбрасывается. Либо он был с двойным экранированием перед вставкой в базу данных, либо у вас включен magic_quotes_runtime. Используйте stripslashes в json-строке, прежде чем использовать json_decode , чтобы избежать ее:
json_decode(stripslashes('[\"\\u0633\\u06cc\\u062f \\u0633\\u0639\\u06cc\\u062f \\u062f\\u0627\\u062f\\u0627\\u0634\\u0632\\u0627\\u062f\\u0647\"]'));
json_encode экранирует каждый символ. Используйте stripslashes () для строки, чтобы удалить дополнительную косую черту для каждого символа.
вы можете использовать эту суть:
https://gist.github.com/MahdiMajidzadeh/88407f4c33a294cae29ed1493332d7c0
:)))))