我正在编写一个小型电子邮件服务器。客户端使用 javascript/jquery
编写,服务器端使用 nodeJS
编写(这是家庭作业)
在客户端,我发送电子邮件如下
function send() {
var dataString = 'to=' + $("#to").val() + '&subject=' + $("#subject").val() + '&body=' + $("#body").val();
var lines = $("#body").val().split("\n");
for (var i = 0;i < lines.length;i++ ) {
dataString += '&line' + i + '=' + lines[i];
}
$.ajax({
type: "POST",
url: "/send",
cache: false,
data: dataString,
success: function(data) {
location.reload();
},
error: function(xhr, textStatus, errorThrown) {
location.reload();
}
});
}
其中 $("body")
是一个文本区域元素。我在客户端输出了body
,它确实是希伯来语。我用这个函数检索电子邮件:
function getMail() {
$("#navigationButtons").show();
$("#workingAread").empty();
var dataString = 'start=' + start + '&url=' + url;
$.ajax({type: "GET", data: dataString, dataType:"json", url: 'getMail', cache: false})
.done(function(data){
mails = data;
$("#workingArea").empty();
if (mails.length === 0) {
$("#workingArea").html("Your inbox is empty");
}
var mailContainer = $("<div></div>");
numOfMails = mails.pop();
mails.forEach(function(elem,i){
var mail = $("<span></span>");
mail.text(elem.fullName + ", " + elem.date + ": " + elem.subject);
mail.click(showMail.bind(this,i));
var chk = $("<input></input>")
.attr("type","checkbox")
.attr("id",elem.uuid);
mailContainer.append(chk).append(mail);
mailContainer.append("<br>");
});
$("#workingArea").append(mailContainer);
return;
})
}
如您所见,dataType
设置为 json
。问题是我得到的都是乱码,大部分是问号。
有人知道如何解决这个问题吗?
谢谢!
最佳答案
确保您的 HTML 页面编码为 UTF-8,您的服务器发送 UTF-8,并且您的电子邮件存储为 UTF-8。
关于jquery - 无法使用 jquery 显示希伯来语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14461422/