Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带fwrite的SQLite UTF-8输出_Php_Sqlite_Encoding - Fatal编程技术网

Php 带fwrite的SQLite UTF-8输出

Php 带fwrite的SQLite UTF-8输出,php,sqlite,encoding,Php,Sqlite,Encoding,我试图使用fwrite函数将从SQLite数据库读取的UTF-8文本输出到文本文件,但一点运气都没有 当我将内容回显到浏览器时,我可以毫无问题地阅读它。作为最后的手段,我在MySQL数据库中创建了相同的表,令人惊讶的是,它居然成功了 原因可能是什么,如何调试它以便使用SQLite DB 我正在使用PDO 下面是我用来从DB读取和写入文件的代码: $arFile = realpath(APP_PATH.'output/Arabic.txt'); $arfh = fopen($arFile, 'w'

我试图使用fwrite函数将从SQLite数据库读取的UTF-8文本输出到文本文件,但一点运气都没有

当我将内容回显到浏览器时,我可以毫无问题地阅读它。作为最后的手段,我在MySQL数据库中创建了相同的表,令人惊讶的是,它居然成功了

原因可能是什么,如何调试它以便使用SQLite DB

我正在使用PDO

下面是我用来从DB读取和写入文件的代码:

$arFile = realpath(APP_PATH.'output/Arabic.txt');
$arfh = fopen($arFile, 'w');
$arTxt = '';
$key = 'somekey';
$sql = 'SELECT ot.langv AS orgv, et.langv AS engv, at.langv AS arbv FROM original ot   LEFT JOIN en_vals et ON ot.langk=et.langk
    LEFT JOIN ar_vals at ON ot.langk=at.langk
    WHERE ot.langk=:key';
$stm = $dbh->prepare($sql);
$stm->execute(array(':key'=>$key));
if( $row = $stm->fetch(PDO::FETCH_ASSOC) ){
    $arTxt .= '$_LANG["'.$key.'"] = "'.special_escape($row['arbv']).'";'."\n";
}
fwrite( $arfh, $arTxt);
fclose($arfh);
原因可能是什么,如何调试它以便使用SQLite DB

SQLite在接收文本时将其存储到数据库中。因此,如果将UTF-8编码的文本存储到SQLite数据库中,则可以从中读取UTF-8文本

比如说,如果将拉丁语-1文本存储到数据库中,那么就可以从中读取拉丁语-1文本

SQLite本身并不关心。所以你把你放进去的东西拿出来

当您在问题中写到“在浏览器中显示看起来不错”时,我假设数据库中至少存储了一些有效的编码值。在查看数据时,您可能希望查看浏览器,了解浏览器告诉您该数据的编码方式

如果上面写的是UTF-8,那就好了。您可能只需要使用不支持UTF-8的编辑器查看文本文件即可。因为
fwrite
也不关心编码,它只是将字符串数据放入文件中,就这样

因此,只要你不在问题中提供额外的信息,就很难说出更具体的内容


另请参见:

您需要发布一些代码以及任何错误消息,否则没有人能够诊断您的问题。fwrite执行任何编码。更重要的是,您可能会使用您期望的其他编码从SQL获取数据。您需要添加一些代码。谢谢您的回答,很高兴知道SQLite按照给定的方式存储数据。我添加了我使用的代码,但在阅读了您的评论后,我怀疑它是否有用(我指的是代码)。对于编辑器,我使用Kate,它从Linux编辑器中读取预期的UTF-8你能把sqlite数据库上传到某个地方让我看看吗?