注意这是 MS Access 2000,这个 PHP 文件是用 ajax 调用来调用的......
在这个 PHP 文件的开头我放了
ini_set('default_charset', 'utf-8');
下面的 $token 来自这些行
$search_string = $_GET[ 'search_string' ];
$search_tokens = explode( " ", $search_string );
$token = $search_tokens[ 0 ];
当我有一个没有法语重音字符的“令牌”时,这可以正常工作:
$sql="SELECT * FROM tblFrEng WHERE French = '$token'";
echo "=== SQL is $sql<br>";
$sth = $dbh->prepare( $sql );
$sth->execute();
但是,尽管带有“référé”之类的法语单词的SQL看起来不错(像这样):
=== SQL is SELECT * FROM tblFrEng WHERE French = 'référé'
不幸的是,查询返回 0 行......即使它应该返回记录......所以在我看来,字符编码可能是问题所在
注意,我也尝试使用 utf8_encode 进行编码,但是正如所指出的那样,这没有任何意义并且使 SQL 字符串出现乱码......