PHP json encode and Node.js decode utf8mb4_unicode_ci strings

214 Views Asked by At

On my server, the database is encode in utf8mb4_unicode_ci I'm writing an API to serve data in JSON. The PHP function json_encode only accepts utf8.

I'm not able to build the full chain:

strings encoded in utf8mb4_unicode_ci => utf8 => json => API => JavaScript => strings encoded in utf8mb4_unicode_ci

For example, $str = "Linéaire ";

From utf8mb4_unicode_ci to utf8 I already try the PHP functions utf8_encode(str) and mb_convert_encoding($str, 'UTF-8', 'Windows-1252') that return respectively:

  • "Lin\u00c3\u00a9aire \u00f0\u009f\u0098\u0080"
  • "Lin\u00c3\u00a9aire \u00f0\u0178\u02dc\u20ac"

Both functions do not return the same result. I don't know which one to choose. Furthermore, I don't know how to unescape the string on client side in JavaScript.

0

There are 0 best solutions below