この関数を使用してデンマーク文字をutfに変換しようとしています
private function process_elements($element){
$element= strtolower ( trim ( $element ) );
$element= mysql_real_escape_string($element);
return utf8_encode($element);
}
私の配列は、次のようなエンコーディングなしで使用されます:
Array ( [0] => Desktop [1] => imlive [2] => dk [3] => Danish [4] => Denmark [5] => http://www.google.dk/search?ie=UTF-8&oe=UTF-8&hl=da&q=imlive&adtest=on&gl=DK&glp=1&ip=0.0.0.0&pws=0&noj=1&nomo=1 [6] => ImLive - Fr�kke cam-piger [7] => Tusindvis af rigtige amat�rer live! [8] => Fra private hjem og sovev�relser [9] => dk.imlive.com [10] => ImLive - Fr�kke cam-piger [11] => dk.imlive.com [12] => Tusindvis af rigtige amat�rer live! Fra private hjem og sovev�relser [13] => ImLive - Fr�kke cam-piger - Tusindvis af rigtige amat�rer live! [14] => dk.imlive.com [15] => Fra private hjem og sovev�relser [16] => ImLive - Fr�kke cam-piger [17] => Tusindvis af rigtige amat�rer live! Fra private hjem og sovev�relser [18] => dk.imlive.com )
ここに私の実装があります:
array_map('self::process_elements', $data);
関数はクラス内にあります...
後でそのようなクエリを設定しました。例えば:
mysql_query("SET NAMES 'utf8'");
$query="INSERT INTO advert
SET device='$device',
keyword='$keyword',
google_domain='$google_domain',
language='$language',
country='$country',
check_url='$check_url',
task_id=$this->task_id";
mysql_query($query) or die(myql_error());
しかし、文字が間違っているという例外がスローされます..入力する前に、それらはutfではないため..配列マップ関数が機能しないのはなぜですか?!