Php 丹麦文字被问号取代

Php 丹麦文字被问号取代,php,character-encoding,Php,Character Encoding,我想去掉这个用丹麦语写的字符串中的问号 ...mest i betydningen moralsk ford�rvelse eller bestikkelighed, men ogs� i... 我尝试了utf8_编码,该编码返回以下内容: ...mest i betydningen moralsk ford�rvelse eller bestikkelighed, men ogs� i... 第一个字符串是我在web服务的XML中得到的响应。有没有办法从我这边解决这个问题?您是否尝

我想去掉这个用丹麦语写的字符串中的问号

...mest i betydningen moralsk ford�rvelse eller bestikkelighed, men ogs� i...
我尝试了utf8_编码,该编码返回以下内容:

...mest i betydningen moralsk ford�rvelse eller bestikkelighed, men ogs� i...

第一个字符串是我在web服务的XML中得到的响应。有没有办法从我这边解决这个问题?

您是否尝试过如下所示调整页眉?我也遇到过同样的问题,但这可以解决问题

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

您是否尝试过如下所示调整页眉?我也遇到过同样的问题,但这会清除掉一些问题

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
你可以用

header('Content-type: text/html; charset=utf-8');
在页面中将字符编码设置为UTF-8

除了确保告诉浏览器您正在使用UTF-8外,还要将以下内容添加到代码中:

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<!-- rest of code here -->
</head>
还请记住,这还取决于此数据何时来自。如果数据库是从数据库中提取的,请检查数据库的编码。

您可以使用

header('Content-type: text/html; charset=utf-8');
在页面中将字符编码设置为UTF-8

除了确保告诉浏览器您正在使用UTF-8外,还要将以下内容添加到代码中:

<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<!-- rest of code here -->
</head>
还请记住,这还取决于此数据何时来自。如果数据库已从数据库中删除,请检查其编码。

检查输入和输出编码。在大多数情况下,为两者选择UTF-8是最好的方法

如果您的输入在ISO-8859-1中,请使用utf8_编码将其编码为UTF-8。如果它已经是UTF-8,再次调用utf8_编码将把事情搞砸

要将输出指定为UTF-8,请使用header'Content-type:text/html;字符集=utf-8';在PHP或HTML中。

检查输入和输出编码。在大多数情况下,为两者选择UTF-8是最好的方法

如果您的输入在ISO-8859-1中,请使用utf8_编码将其编码为UTF-8。如果它已经是UTF-8,再次调用utf8_编码将把事情搞砸

要将输出指定为UTF-8,请使用header'Content-type:text/html;字符集=utf-8';在PHP或HTML中。

读取XML文件的编码属性,并使用该编码将其转换为网站正在使用的编码。如果没有编码属性,则默认为UTF-8。如果步骤产生的编码与网站使用的编码相同,则无需进行转换

$encoding_read_from_xml = "ISO-8859-1";
$encoding_my_website_uses = "UTF-8";
$xml_content = mb_convert_encoding($xml_content, $encoding_my_website_uses, $encoding_read_from_xml);
读取XML文件的编码属性,并使用该编码将其转换为网站正在使用的编码。如果没有编码属性,则默认为UTF-8。如果步骤产生的编码与网站使用的编码相同,则无需进行转换

$encoding_read_from_xml = "ISO-8859-1";
$encoding_my_website_uses = "UTF-8";
$xml_content = mb_convert_encoding($xml_content, $encoding_my_website_uses, $encoding_read_from_xml);

避免此类问题的最佳方法是,对整个网站使用UTF-8,这意味着:

将PHP文件本身编码为UTF-8,这是由编辑器/IDE完成的。 向页面添加meta标记,例如HTML5。 也许最重要的一点是:在进行查询之前,将数据库连接对象的字符集设置为UTF-8,对于mysqli,您可以调用$mysqli->set_charset'utf8'。
当您遵循这些要点时,您将永远不必在不同编码之间转换任何数据。您可以在这篇小文章中找到更多信息和示例。

避免此类问题的最佳方法是,在整个网站上使用UTF-8,这意味着:

将PHP文件本身编码为UTF-8,这是由编辑器/IDE完成的。 向页面添加meta标记,例如HTML5。 也许最重要的一点是:在进行查询之前,将数据库连接对象的字符集设置为UTF-8,对于mysqli,您可以调用$mysqli->set_charset'utf8'。
当您遵循这些要点时,您将永远不必在不同编码之间转换任何数据。您可以在这篇小文章中找到更多信息和示例。

什么是典型的ISO-8859-1或UTF-8输入编码?您希望输出编码是什么?嘿,Mido,调用utf8_编码时我没有这样做吗?什么是典型的ISO-8859-1或UTF-8输入编码?您希望输出编码是什么?嘿Mido调用utf8_encode时我没有这样做吗?还值得注意的是,如果不使用正确的字符集,数据库查询也可能导致字符损坏。例如,在MySQL中,集合名为UTF8;可能是必要的,具体取决于设置。所以@Mido那么您想说的是,问题可能出在获取datadb查询上?我尝试了头函数abode,但它没有解决它。考虑到我有给定的字符串,没有解决方法?考虑到标题。。。不起作用。还值得注意的是,如果不使用正确的字符集,数据库查询也可能导致字符损坏。例如,在MySQL中,集合名为UTF8;可能是必要的,具体取决于设置。所以@Mido那么您想说的是,问题可能出在获取datadb查询上?我尝试了头函数abode,但它没有解决它。考虑到我有给定的字符串,没有解决方法?考虑到标题。。。不起作用。这只是内部数据,他从其他人那里获得的数据可以是任何形式encoding@Esailija-你是对的,我忽略了数据来自web服务。如果OP不能改变beh
如果您对该服务感兴趣,那么您的回答将是合适的,否则我建议让该服务提供UTF-8+谢谢你的回答。我刚想到。OP在他的页面上看到了unicode替换字符,只有使用unicode解码后,您才能看到该字符。然后,他调用utf8_encode,当页面被解释为UTF-8并且要编码的字符按字面意思是�. 因此,如果这是直接来自源代码,并且op在其上被称为utf8_encode,则原始源代码必须具有字符� 这对他来说是无法挽回的。tl;dr:所有内容都是utf-8,但字符都是字面意思� 首先,这只是内部数据,他从其他人那里得到的数据可以是任何形式的encoding@Esailija-你是对的,我忽略了数据来自web服务。如果OP不能改变服务的行为,那么您的回答是合适的,否则我建议让服务提供UTF-8+谢谢你的回答。我刚想到。OP在他的页面上看到了unicode替换字符,只有使用unicode解码后,您才能看到该字符。然后,他调用utf8_encode,当页面被解释为UTF-8并且要编码的字符按字面意思是�. 因此,如果这是直接来自源代码,并且op在其上被称为utf8_encode,则原始源代码必须具有字符� 这对他来说是无法挽回的。tl;dr:所有内容都是utf-8,但字符都是字面意思� 首先。