当我在网页上回显数据时,我收到了未知字符。 testing.doc
包含
在其他市场之前买入“便宜”的股票
$data = file_get_contents('testing.doc');
$soap->SetLocalTemplate(
array(
'template' => base64_encode($data),
'format' => 'doc'
)
);
$soap->CreateDocument();
$result = $soap->RetrieveDocument(
array(
'format' => 'txt'
)
);
$data = $result->RetrieveDocumentResult;
file_put_contents(file.txt', base64_decode($data));
如果我读取文本文件file.txt,我会得到存储在testing.doc中的确切文本,但如果我喜欢这样:
echo base64_decode($data);
我得到了
在市场其他部分之前购买股票“收盘”
现在有一些未知的角色。请告诉我如何解决这个问题?
答案 0 :(得分:3)
看起来像是字符编码问题。
如果您使用的网页编码设置与您从中获取内容的来源不同,那么您将获得如上所述的有趣字符。
答案 1 :(得分:0)
您的网页可能被视为ISO-8859-1编码,但XML数据采用UTF-8格式。
将输出编码更改为UTF-8,或使用iconv()
将其转换为ISO-8859-1。
答案 2 :(得分:0)
正如其他人所提到的,XML数据具有UTF-8编码。
要将内容回显到浏览器,您应该设置标题,尤其是当您知道要尝试回复的内容的编码时:
header('content-type:text/html;charset=utf8');
在调用echo之前就是这样。例如:
/* get content, set it to $content */
header('content-type:text/html;charset=utf8');
echo $content;