鍍金池/ 問答/Java  PHP  HTML/ 不可見字符亂碼導致json解析出錯

不可見字符亂碼導致json解析出錯

最近在處理一個文本數據,需要通過api返回給前端,但是前端解析不了,后面發(fā)現時含有亂碼,瀏覽器無法渲染(為不可見字符),正則匹配可以s匹配到,但是會誤傷其他不可見字符,下面是幾種不同的編輯器的渲染效果

vscode

clipboard.png

pages

clipboard.png

https://regexr.com/

clipboard.png

瀏覽器調試工具

clipboard.png

以下是原文,哪個知道如何匹配或者去除


?我只是測試一下;

?git init;


?git add :


.
回答
編輯回答
故林

可以嘗試修改charset試試
前端也可以用replace對字符串替換

2017年3月31日 15:38
編輯回答
六扇門

直接用字符串替換就好了。
我的代碼:(a前面有你那個錯誤的編碼,當然瀏覽器應該是看不到的)
1 <?php
2 $a = '?a';
3 $json = json_encode($a);
4 var_dump($a);
5 var_dump($json);
6 var_dump(str_replace('?','', $a));
輸出:
string(4) "?a"
string(9) ""u2028a""
string(1) "a"
可以看到那個奇怪的編碼被json_encode成了u2028,其實那個奇怪的符號是占了3個字節(jié)的,可以看到第一個輸出的string長度是4,替換后長度變成了1

2018年7月18日 08:57