WebApi fail to receive json data with special characters

Webapi fail to receive json data with Chinese characters which is sent by c++ client, receive data is null when data contains special characters, is there anyway to fix it ?

jsondata sent by C++ Client :

POST /api/DataProcess/UpdateExperimentLog HTTP/1.1

Host: 192.168.1.11:5555

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36

Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Charset: GB2312, utf-8; q=0.7, *; q=0.7

Content-Type:application/json;charset=UTF-8

Content-Length: 711

{"experimenter":"LSR","datetime":"20180301","reagentJson":"[{\"Type\":\"(null)\",\"Abs260\":\"0.000\",\"Abs280\":\"0.003\",\"Abs230\":\"0.003\",\"Col260_230\":\"-0.11\",\"Col260_280\":\"-0.15\",\"Concentration\":\"-0.0184\",\"Unit\":\"ng/ul\",\"SampleType\":\"dDNA\"},{\"Type\":\"型号\",\"Abs260\":\"2.057\",\"Abs280\":\"1.033\",\"Abs230\":\"1.953\",\"Col260_230\":\"1.05\",\"Col260_280\":\"1.99\",\"Concentration\":\"102.8742\",\"Unit\":\"ng/ul\",\"SampleType\":\"dDNA\"}]","resultJson":"[{\"SamLSH\":\"8195纯化\",\"Abs260\":\"2.029\",\"Abs280\":\"0.979\",\"Abs230\":\"1.478\",\"Col260_230\":\"1.37\",\"Col260_280\":\"2.07\",\"Concentration\":\"101.4643\",\"Unit\":\"ng/ul\",\"SampleType\":\"dDNA\"}]"}

Server Part:

    public HttpResponseMessage UpdateExperimentLog([FromBody] dynamic datajson)
    {

        string msg = "";
        HttpStatusCode code = HttpStatusCode.EXCEPTION;
        try
        {

            ExperimentLog experimentLog = JsonConvert.DeserializeObject<ExperimentLog>(datajson.ToString());
            Log4NetHelper.WriteLog(experimentLog.experimenter + "\t" + experimentLog.datetime + "\r\n" + experimentLog.reagentJson + "\r\n" + experimentLog.resultJson);
            TableDAL reagentDAL = new TableDAL("ER_Reagent");
            TableDAL resultDAL = new TableDAL("ER_Result");
            Dictionary<string, object> logInfo = new Dictionary<string, object>();
            logInfo["Experimenter"] = experimentLog.experimenter;
            logInfo["ExperimentTime"] = experimentLog.datetime;
            TableDAL dal = new TableDAL("ER_ExperimentLog");
            long newLogID = dal.Insert(logInfo);
            if (newLogID > 0)
            {
                DataTable dtReagent = JsonConvert.DeserializeObject<DataTable>(experimentLog.reagentJson);
                DataTable dtResult = JsonConvert.DeserializeObject<DataTable>(experimentLog.resultJson);

                DataTable dtReagentDB = reagentDAL.GetTableStructure();
                dtReagentDB.TableName = "ER_Reagent";
                dtReagentDB.Columns.Remove("ID");
                foreach (DataRow dataRow in dtReagent.Rows)
                {
                    DataRow newRow = dtReagentDB.NewRow();
                    dtReagentDB.Rows.Add(newRow);
                    newRow["ExperimentLogID"] = newLogID;
                    foreach (DataColumn dc in dtReagent.Columns)
                    {
                        newRow[dc.ColumnName] = dataRow[dc];
                    }
                }
                reagentDAL.InsertDataTable(dtReagentDB);

                DataTable dtResultDB = resultDAL.GetTableStructure();
                dtResultDB.TableName = "ER_Result";
                dtResultDB.Columns.Remove("ID");
                foreach (DataRow dataRow in dtResult.Rows)
                {
                    DataRow newRow = dtResultDB.NewRow();
                    dtResultDB.Rows.Add(newRow);
                    newRow["ExperimentLogID"] = newLogID;
                    foreach (DataColumn dc in dtResult.Columns)
                    {
                        newRow[dc.ColumnName] = dataRow[dc];
                    }
                }
                resultDAL.InsertDataTable(dtResultDB);
                msg = "update success";
                code = HttpStatusCode.SUCCESS;
            }
            else
            {
                msg = "exception";
            }
        }
        catch (Exception ex)
        {
            msg = ex.Message;
        }

        return MVCHelper.EnJsonp(code, msg, this);
    }