我想从丹麦语中的字符串中删除问号。
...mest i betydningen moralsk ford�rvelse eller bestikkelighed, men ogs� i...
我尝试了utf8_encode()
,返回以下内容:
...mest i betydningen moralsk ford�rvelse eller bestikkelighed, men ogs� i...
第一个字符串是我在Web服务中的XML中获得的响应。有没有办法解决这个问题?
答案 0 :(得分:4)
您可以使用
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>
还要记住它还取决于此数据的来源。检查数据库的编码是否已从数据库中删除。
答案 1 :(得分:4)
阅读XML文件的encoding
属性,并使用该编码将其转换为您的网站正在使用的编码。如果没有编码属性,则默认为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);
答案 2 :(得分:4)
避免此类问题的最佳方法是,在整个网站上使用UTF-8,这意味着:
<meta charset="UTF-8">
。$mysqli->set_charset('utf8')
。当您遵循这些要点时,您将永远不必在不同编码之间转换任何数据。您可以在这篇小文UTF-8 for PHP and MySQL中找到更多信息和示例。
答案 3 :(得分:2)
检查输入和输出编码。在大多数情况下,为两者选择UTF-8是最好的方法。
如果您的输入是ISO-8859-1,请使用utf8_encode()
将其编码为UTF-8。如果它已经是UTF-8,再次调用utf8_encode()
将会搞砸。
要将输出指定为UTF-8,请在PHP中使用header('Content-type: text/html; charset=utf-8');
或在HTML中使用<meta charset="UTF-8" />
。
答案 4 :(得分:1)
您是否尝试过如下所示调整标题?我遇到了同样的问题,但是这样可以解决问题
<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" />