PHP中的字符编码

PHP中的字符编码,php,encoding,Php,Encoding,我以前从未遇到过这个问题,它通常是我的数据库或html页面。但现在我认为这是我的php。我从csv或文本区域导入文本,两种方式都会出错 例如,更改为Ã)。我用htmlentities来解决这个问题,但它不起作用。htmlentities函数在html中没有返回é,但在html实体中返回é因此在htmlentities出现之前它已经丢失了真正的字符。。。那么这是否意味着我的php文件有错误的编码或其他什么 我希望有人能帮助我 谢谢! Chris文件通常是ISO-8859-1(拉丁语)或UTF-8

我以前从未遇到过这个问题,它通常是我的数据库或html页面。但现在我认为这是我的php。我从csv或文本区域导入文本,两种方式都会出错

例如,更改为Ã)。我用htmlentities来解决这个问题,但它不起作用。htmlentities函数在html中没有返回é,但在html实体中返回é因此在htmlentities出现之前它已经丢失了真正的字符。。。那么这是否意味着我的php文件有错误的编码或其他什么

我希望有人能帮助我

谢谢!
Chris

文件通常是ISO-8859-1(拉丁语)或UTF-8。。。ISO-8859-1是每个字符1个字节,UTF-8是每个字符1-4个字节。因此,如果您在期望一个字符时得到两个字符,那么您正在阅读UTF-8并将其显示为ISO-8859-1。。。如果您得到奇怪的字符,那么您正在阅读ISO-8859-1并将其显示为UTF-8

如果您提供更多详细信息,则更容易确定,但简言之,您有不一致的字符集,需要转换其中一个字符集,以便它们都相同。但从表面上看,您在项目中使用的是ISO-8859-1,但您正在某处阅读一些UTF-8。。。如果数据确实应该存储为UTF-8,请使用utf8_decode($text),或者查找数据并手动转换


编辑:如果您在某处使用AJAX,那么您将始终从中获得UTF-8,如果您想继续使用ISO-8859-1,则必须使用utf8_decode()对其进行解码。

请查看。

尝试打开php文件并将编码更改为UTF-8

如果没有帮助,请将以下内容添加到您的php中:

header('Content-Type: text/html; charset=utf-8');
或将以下内容添加到您的html:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

非常感谢您的解释,utf8\u解码完全完成了任务!