簡體   English   中英

PHP意外字符編碼

[英]PHP unexpected character encoding

我有一個PHP腳本,可獲取ICS文件,對其進行一些更改,然后使用Content-Type: application/icsContent-Disposition: attachment; filename="test.ics"重寫該文件以供下載Content-Disposition: attachment; filename="test.ics" Content-Disposition: attachment; filename="test.ics" 該腳本工作正常。 但是,某些字符(例如'被轉換為' ,但不是全部,只有那些我修改過的行。

當我var_dump作為有效負載寫入的字符串時,瀏覽器可以正常顯示所有字符。

任何想法 ?

編輯:我從這里使用ICS解析器。 問題來自於此,但是在瀏覽了代碼之后,我找不到在哪里可以用htmlentities替換某些字符。

您需要將&#[0-9]+實體轉換為UTF-8 ,可以為此使用preg_replace_callbackmb_convert_encoding ,即:

$string = "stack user's";
echo preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); }, $string); 
//stack user's

Ideone演示

我認為您在修改文件時需要解碼html字符:
http://php.net/manual/zh/function.htmlspecialchars-decode.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM