欧元符号编码 - PHP

时间:2012-05-12 18:11:33

标签: php curl encoding euro

我尝试了很多不同的东西,无法显示欧元符号。 我正在使用cURL来解析页面。该页面采用ISO-8859-1

进行编码
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

页面上有一个欧元符号,当我使用

$curl_scraped_page = curl_exec($ch);

我刚买了一个带有问号的黑色钻石。

我在这个网站上看到了许多相关的问题和答案,但它们并没有真正起作用。

编辑:我尝试过使用以下内容:

$curl_scraped_page = preg_replace('/charset=(.*)"/', 'charset="UTF-8"', $curl_scraped_page);

$curl_scraped_page = iconv('iso-8859-1', 'UTF-8', $curl_scraped_page);

$curl_scraped_page = utf8_encode(curl_exec($ch));

我想另一个问题是,要显示欧元符号,我是否需要使用UTF-8或ISO-8859-1?

EDIT2:我试过这个:

echo "Encoding is $enc";
echo iconv($enc, "ISO-8859-1", $curl_scraped_page);

结果是:

Encoding is ISO-8859-1

但仍然没有欧元符号。 当我查看页面的来源时,它仍会显示菱形问号但是当我在浏览器上单击“查看”并将其更改为ISO-8859-1时,会出现欧元符号。这是一个浏览器问题吗?

5 个答案:

答案 0 :(得分:1)

尝试设置curl的标题

$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 

卷曲可能是默认的&#34; UTF-8&#34;连接。

编辑:

使用&#34; utf8_decode&#34;将它转换为iso的时候是什么? ?

PHP: curl_setopt

答案 1 :(得分:1)

只需申请htmlentities(curl_exec($ch)) 这不会破坏特殊字符

答案 2 :(得分:0)

只需将相同的元内容类型声明添加到您回显检索到的网页的网页上。

答案 3 :(得分:0)

Web浏览器不使用元标记来确定字符集,除非没有声明字符集的http标头。这是后备,大多数网络服务器通过http标头指定字符集,因此在实践中通常会忽略元标记。

我说:那个页面可能是一个不同的字符集。

检查http标头。然后声明您自己的页面再次通过http标头匹配,而不是元标记。或者将字符串转换为首选编码。

答案 4 :(得分:0)

在我执行cURL解析之前,我将cURL设置为用ISO-8859-1编码进行解析

header('Content-Type: text/html; charset=iso-8859-1');
$curl_scraped_page = curl_exec($ch);

这意味着它会在页面上显示欧元符号。 然后,当我用欧元符号回显内容时,我不必担心编码,因为我认为它会自动格式化为我正在使用的编码。