EJS是一款流行的模板引擎,可以在Node.js環(huán)境下使用。
然而,有時(shí)候使用EJS渲染JSON數(shù)據(jù)時(shí)會(huì)出現(xiàn)亂碼的情況。
出現(xiàn)亂碼的原因是EJS默認(rèn)使用UTF-8編碼,而有時(shí)候JSON數(shù)據(jù)可能采用其他編碼方式。
為了解決這個(gè)問(wèn)題,我們需要指定正確的編碼方式。
<%# 指定編碼方式 %>
<%- JSON.stringify(data, null, '\t').decodeURIComponent().replace(/\+/g, ' ') %>
在這個(gè)例子中,我們使用了decodeURIComponent()方法將數(shù)據(jù)中的所有URL特殊字符解碼,然后使用replace()方法將加號(hào)替換成空格。
最后,我們將數(shù)據(jù)使用JSON.stringify()方法轉(zhuǎn)換成字符串,然后使用<%-
標(biāo)簽輸出,從而避免編碼問(wèn)題。