時,我有我以前使用ASP.NET幾年寫了一個Web應用程序,它保存的表單數據爲MDB數據庫,然後當用戶選擇轉換爲XLS文件。奇怪的字符集插入MDB數據庫使用PHP
我改變形式處理代碼爲PHP和我注意到,阿拉伯字符被轉換爲不同的字符集。
實施例:تجربة
將被存儲爲تجربة
我可以使用此online tool在UTF8編碼場粘貼時,它把它轉換回樹膠。
這裏是代碼:
ini_set('default_charset', 'utf-8');
header('Content-Type: text/html;charset=utf-8');
$dbName = "DB\DB.mdb";
if (!file_exists($dbName)) {
die("Could not find database file.");
}
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$dbName", "", "");
odbc_exec($connection , "SET NAMES 'UTF8'");
odbc_exec($connection , "SET client_encoding='UTF-8'");
$stmt="INSERT INTO arabic_table (val) VALUES('".$_POST["arabicTxT"]."')";
$resultset=odbc_exec($connection,$stmt);
請注意: 我轉換所有文件爲UTF-8使用記事本。 我通過「echo'ing將它們存儲在他們面前back測試阿拉伯文輸入,而他們是在正確的字符集。 ASP確實存儲阿拉伯字符。 我的共享主機中沒有任何PDO驅動程序。
我尋覓了好幾個小時的解決方案,沒有運氣,任何想法?
在此先感謝。
你的代碼是開放的SQL注入。您應該使用的方法制得的語句(https://php.net/manual/en/function.odbc-prepare.php)把任何變量數據插入SQL查詢時。 – tim
謝謝你指出。 – Ploxer