Support

Account

Home Forums Backend Issues (wp-admin) JSON_ERROR_UTF8 with Post Object Field

Helping

JSON_ERROR_UTF8 with Post Object Field

  • If a Post has unicode in it’s title the Post Object field will break when trying to json_encode the data.

    Spent a while trying to figure out why my posts wouldn’t show up 🙂 That’s why!

  • Hi @marcaddeo,

    Thanks for the post.

    This issue seems evident in v 5.5 of PHP.

    Because json_encode() only deals with utf8, it is often necessary to convert all the string values inside an array to utf8.

    You can always make use of these functions to do the conversion:

    <?php 
    function utf8_encode_all($dat) // -- It returns $dat encoded to UTF8 
    { 
      if (is_string($dat)) return utf8_encode($dat); 
      if (!is_array($dat)) return $dat; 
      $ret = array(); 
      foreach($dat as $i=>$d) $ret[$i] = utf8_encode_all($d); 
      return $ret; 
    } 
    /* ....... */ 
    
    function utf8_decode_all($dat) // -- It returns $dat decoded from UTF8 
    { 
      if (is_string($dat)) return utf8_decode($dat); 
      if (!is_array($dat)) return $dat; 
      $ret = array(); 
      foreach($dat as $i=>$d) $ret[$i] = utf8_decode_all($d); 
      return $ret; 
    } 
    /* ....... */ 
    ?>
Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.