鍍金池/ 問答/Java  PHP  HTML/ 不可見字符亂碼導(dǎo)致json解析出錯(cuò)

不可見字符亂碼導(dǎo)致json解析出錯(cuò)

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

vscode

clipboard.png

pages

clipboard.png

https://regexr.com/

clipboard.png

瀏覽器調(diào)試工具

clipboard.png

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


?我只是測(cè)試一下;

?git init;


?git add :


.
回答
編輯回答
故林

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

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

直接用字符串替換就好了。
我的代碼:(a前面有你那個(gè)錯(cuò)誤的編碼,當(dāng)然瀏覽器應(yīng)該是看不到的)
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"
可以看到那個(gè)奇怪的編碼被json_encode成了u2028,其實(shí)那個(gè)奇怪的符號(hào)是占了3個(gè)字節(jié)的,可以看到第一個(gè)輸出的string長(zhǎng)度是4,替換后長(zhǎng)度變成了1

2018年7月18日 08:57