我想在將丹麥字符發送到數據庫之前進行編碼。無法在PHP中對字符進行編碼(錯誤的字符串值)
我嘗試這個功能適用於他們:
private function process_array_elements(&$element){
$element = utf8_encode($element);
$element = strip_tags( $element);
$element = strtolower (trim ($element) );
$element = mysql_real_escape_string($element);
return $element;
}
像這樣:
$this->check_line_two = $this->process_array_elements($e);
現在,每當我試圖將字符串發送到數據庫:
mysql_query("SET NAMES 'utf8'");
$query="INSERT INTO result_scanned
SET line_one= '$this->check_line_one',
line_two='$this->check_line_two',
line_three='$this->check_line_three',
advert_id='$this->advert_id',
scanned='$this->scan_result'";
我得到這個:
Incorrect string value: '\xE3\x83\xE2\xB8r ...' for column 'line_three' at row 1
在表中的字段的數據類型是UTF-8(utf8_unicode_ci
),所以我必須使用相同的
此線程與我的問題我的編碼字符串:Detect encoding and make everything UTF-8。
但是,在將數據插入數據庫之前,我需要知道如何將任何字符編碼爲UTF-8,否則,會出現上述錯誤。我認爲我需要首先確定在將它們放入數據庫之前我接受的是什麼類型的角色。
你做'$這個 - > check_line_two',但SQL扼流圈'列「line_three」 ' –
停止使用'mysql_'方法。他們年紀大了,很容易把事情搞砸。相反,使用[PDO](http://php.net/pdo)。另外,你的函數'process_array_elements'(這是一個錯誤的方法名稱,因爲它與數組無關,並且它可以處理任何類型的字符串 - 不只是來自數組的東西)正在使用'$ elements '作爲參考,但仍然返回結果。這很混亂,可能會導致意想不到的副作用。 – kba
謝謝,克里斯汀,雖然它不涉及到問題 –