Php 为什么编码会改变?

Php 为什么编码会改变?,php,ajax,sqlite,encoding,Php,Ajax,Sqlite,Encoding,我在本地Web服务器上有一个项目,所有文件都在UTF-8中,还有UTF-8中的sqlite数据库,德语字母a、o、u和圆点(umlauts)也可以,但是在它们成为主机时,如果我有不同类型的文件和不同的编码,这是肯定的,但它不能只在主机上工作,为什么 header('Content-Type: text/html; charset=utf-8'); require("dbconnect.php"); ... $sql = "SELECT * FROM customers ORDER BY

我在本地Web服务器上有一个项目,所有文件都在UTF-8中,还有UTF-8中的sqlite数据库,德语字母a、o、u和圆点(umlauts)也可以,但是在它们成为主机时,如果我有不同类型的文件和不同的编码,这是肯定的,但它不能只在主机上工作,为什么

header('Content-Type: text/html; charset=utf-8');
require("dbconnect.php");
...

    $sql = "SELECT * FROM customers ORDER BY CREATED " . $order . " LIMIT(10)";
    $query = $dbo->prepare($sql);
    $query->execute();
    $result = $query->fetchAll();
    renderTable($result);

...

function renderTable($queryResult) {
...
echo "<td>",ucwords(strtolower($row['CUSTNAME'])),"</td>";
...
header('Content-Type:text/html;charset=utf-8');
要求(“dbconnect.php”);
...
$sql=“按创建的客户订单选择*”$秩序。“限额(10)”;
$query=$dbo->prepare($sql);
$query->execute();
$result=$query->fetchAll();
可渲染($结果);
...
函数可渲染($queryResult){
...
echo“”、ucwords(strtolower($row['CUSTNAME'])、“”;
...

您在dbconnect.php中尝试过这个吗

$dpo->exec("set names utf8");

您在dbconnect.php中尝试过这个吗

$dpo->exec("set names utf8");

谢谢大家,这是一个strtolower内置函数,我使用它将caps名称更改为general,对于unicode,建议使用mb_strtolower

谢谢大家,这是一个strtolower内置函数,我使用它将caps名称更改为general,对于unicode,建议使用mb_strtolower

好吧,我首先检查是否托管数据base使用相同的编码,请检查特定的数据库表是否存储为
o
。是否将db连接初始化为UTF-8?首先检查整个主机是否使用该编码。也许可以尝试联系您的主机,因为您让它运行所有UTF-8并在您自己的主机上进行了检查。@antonisTsimourtos存储为o,hoster不是我的,所以无法检查,是否有一些解决方案可以使用htaccess设置所有内容?好的,我首先检查托管数据库是否使用相同的编码,检查特定的数据库表是否存储为
o
。另外,是否将db连接初始化为UTF-8?首先检查整体主机正在使用这种编码。也许可以尝试联系您的主机,因为您让它运行所有UTF-8并在您自己的主机上检查它。@Antonitsimourtos存储为o,主机不是我的,所以无法检查,是否有一些解决方案可以使用htaccess设置所有内容?是的,它在dbconnect.php
code
try{$dbo=new PDO中(“sqlite:../data/clients.db”);$dbo->query(“SET NAMES'utf8');$dbo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}catch(PDO EXCEPTION$e){echo$e->getMessage();}
code
你试过所有这些吗?[link]我以前在越南语中遇到过这个问题,并做了很多事情来解决它。你说的“全部”是什么意思“?是的,它在dbconnect.php
code
try{$dbo=new PDO(“sqlite:../data/clients.db”);$dbo->query(“SET NAMES'utf8');$dbo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION)}catch(PDO EXCEPTION$e){echo$e->getMessage()}
code
你都试过了吗?[链接]我以前在越南人身上遇到过这个问题,并且做了很多事情来解决它。你说的“全部”是什么意思?