我终于克服了将完整utf-8字符串从javascript 传递给python的问题,但是现在"\n"当在python中收到字符串时,Javascript端存在的回车符将丢失.有什么我应该做的事情来实现这一目标吗?
function saveMeetingComments(){
var komments = $('#cmt_t').val()
var d = new Date();
var commentsText = $('#cmt_t').val()
var abc = ''
var request = par_makeHttpObject();
commentsText = stringTranslate(commentsText,"'",'`');
request.open("POST", "saveMeetingNote?clientID="+clid_+
"&co_ID="+coid_+
"&msgDate="+dateFormat(d, "dddd, mmmm dS, yyyy, h:MM TT")+
"&MeetType="+AGM_+
"&MeetDate="+meetdate+"-"+
"&Comments="+commentsText , false);
request.send();
$('#cmt_t').val('');
parkAll();
}
Run Code Online (Sandbox Code Playgroud)
注释是唯一可能有回车的变量.在Python方面,代码如下:
def saveMeetingNote(self, **kwargs):
clientID = kwargs['clientID']
co_ID = kwargs['co_ID']
MessageDate = kwargs['msgDate']
MeetingType = kwargs['MeetType']
MeetingDate = kwargs['MeetDate']
Comments_ = kwargs['Comments']
coName = dennislib.CompanyCoID2NAME(co_ID)[0]['FName']
ret = dennislib.saveMeetingNotes(clientID,co_ID,MessageDate,MeetingType,MeetingDate,Comments_,coName)
return
saveMeetingNote.exposed = True
Run Code Online (Sandbox Code Playgroud)
检查评论_表明这些\n都已经消失了......
TIA
丹尼斯
在将数据粘贴到POST请求URL之前,您似乎没有对数据进行URL编码.换行不是唯一可能丢失的东西.当有人&在评论字段中输入内容时会发生什么?
使用encodeURIComponent来解决这个问题:
// ...
"&Comments=" + encodeURIComponent(commentsText) // ...
Run Code Online (Sandbox Code Playgroud)
在服务器端,要解码此用途:
import urllib
# ...
Comments_ = urllib.unquote(kwargs['Comments']).decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)