У меня есть base64
закодированная строка JSON из JavaScript с частью кириллического текста. Я отправляю это на сервер и хочу декодировать base64
, но это дает мне странный результат.декодировать кириллицу base64 в php
Строка:
eyJuYW1lT3JkZXIiOlsicHJvcGVydHlpZCIsInByb2plY3RuYW1lIiwiZW52aXJvbm1lbnQiLCJ2YXJpYWJsZSIsInZhbHVlIiwiY29tcG9uZW50IiwidXNhZ2UiLCJhY2Nlc3N0eXBlIiwidmVyc2lvbiIsImxhbmd1YWdlIl0sInBhcmFtZXRlcnMiOlsiNjg1IiwiRGVtbyIsInByb2QiLCJsYWkiLCJ2YWx1ZdCG0L3QtNC10LrRgSDQm9C40YHRgtC+0LLQvtGXINCf0L7QstC10YDRhdC90ZYgKC0pIiwiVHJhbnNsYXRpb24iLCJOT1RUUkFOU0xBVEVEIiwid3JpdGUiLCIwLjQuMCIsInVrIl19
сгенерировать эту строку следующим образом:
btoa(unescape(encodeURIComponent(JSON.stringify(
массив ))))
Ожидаемый результат:
{
"nameOrder":[
"propertyid",
"projectname",
"environment",
"variable",
"value",
"component",
"usage",
"accesstype",
"version",
"language"
],
"parameters":[
"685",
"Demo",
"prod",
"lai",
"valueІндекс Листової Поверхні (-)",
"Translation",
"NOTTRANSLATED",
"write",
"0.4.0",
"uk"
]
}
Результат (нормальный base64_decode
функция):
{"nameOrder":
[ "propertyid",
"projectname",
"environment",
"variable",
"value",
"component",
"usage",
"accesstype",
"version",
"language"
],
"parameters":
[ "685",
"Demo",
"prod",
"lai",
"valueІндекс Листд,ԯեȴ'��ԭt`4at/teȊJHˈ՜ٛݛ][ۈˈӓՕѓՓUQˈޜHˈ̋͋̈ˈޚȗ_
Хорошо, я что-то нашел!
Когда я использую $_GET
, чтобы получить строку из URL-адреса, она изменяется. Я думаю, что это проблема. Что я могу сделать, чтобы получить правильную строку из URL-адреса?
Хорошо работает, когда кодировка браузера установлена на utf-8. –
Но я не показываю результат в браузере, я только отправляю его на сервер, поэтому могу его обработать. Там он не обрабатывается в utf-8. – Golovior
Вы не упомянули о дальнейшей обработке в своем вопросе. Так как ваша строка примера может быть правильно расшифрована в моей среде, pls. разверните свой вопрос до актуальной проблемы. –