In essence, my JSON is printing NULL for fields that contain a special character.
I have read around the subject and followed the duplicate question, as well as other threads, one post in particular highlighted that I need to do the following:
If you're using mysqli, you can call set_charset():
$mysqli->set_charset('utf8mb4');       // object oriented style
mysqli_set_charset($link, 'utf8mb4');  // procedural style
If you're stuck with plain mysql but happen to be running PHP ≥ 5.2.3, you can call mysql_set_charset.
If the driver does not provide its own mechanism for setting the connection character set, you may have to issue a query to tell MySQL how your application expects data on the connection to be encoded: SET NAMES 'utf8mb4'.
I have done this as documented in the openConnection() function as below in my connection script:
<?php
ini_set('display_errors', 1); 
ini_set('log_errors',1); 
error_reporting(E_ALL); 
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
class MySQLDao{
var $dbhost = null;
var $dbuser = null;
var $dbpass = null;
var $conn = null;
var $dbname = null;
var $result = null;
public function __construct(){
    $this->dbhost = Conn::$dbhost;
    $this->dbuser = Conn::$dbuser;
    $this->dbpass = Conn::$dbpass;
    $this->dbname = Conn::$dbname;
}
public function openConnection()
{
    $this->conn = new mysqli($this->dbhost, $this->dbuser, $this->dbpass, $this->dbname);
    if (mysqli_connect_errno())
        echo new Exception("Could not establish connection with database");
mysqli_set_charset($this->conn, "utf8mb4");
}
I have been through my database in phpMyAdmin and converted all my collations to ut8mb4_bin.  I have put in the mysql_set_chars line as suggested, and I have also changed all of my tables to utf8mb4 through this type of command ALTER TABLE teams CHANGE name name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE  utf8mb4_unicode_ci;
These are my database setting from phpMyAdmin:
My web server details are Apache Database client version: libmysql - 5.0.77 PHP extension: mysqli Documentation PHP version: 5.3.3
Yet none of this has fixed my problem.
My character_set_server is displaying as latin1, could this be the issue?
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | latin1             |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | latin1_swedish_ci  |
+--------------------------+--------------------+
I am at a loss at what else to try.
