我尝试了很多不同的方法,但无法显示欧元符号。 我正在使用 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?
编辑2:我已经尝试过:
echo "Encoding is $enc";
echo iconv($enc, "ISO-8859-1", $curl_scraped_page);
结果是:
Encoding is ISO-8859-1
但仍然没有欧元符号。 当我查看页面源代码时,它仍然显示菱形问号,但当我单击浏览器上的“查看”并将其更改为 ISO-8859-1 时,会出现欧元符号。那么这是浏览器问题吗?
最佳答案
尝试为curl设置标题
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl 有可能默认使用“UTF-8”连接。
编辑:
当你用“utf8_decode”将其转换为iso时会发生什么?
关于php - 欧元符号编码 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10566221/