时,我有我以前使用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