0

我终于克服了将完整字符串从 javascript 传递到 python 的问题,但是现在在 python 中接收字符串时缺少 Javascript 端存在utf-8的回车。"\n"我应该做些什么来实现这一目标吗?

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();
}

注释是唯一可能有回车的变量。在 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

检查 Comments_ 表明所有的\n都消失了......

TIA

丹尼斯

4

2 回答 2

5

看起来您在将数据粘贴到 POST 请求 URL 之前没有对数据进行 URL 编码。换行不是唯一可能丢失的东西。当有人&在评论字段中输入 an 时会发生什么?

用于encodeURIComponent解决此问题:

// ...
"&Comments=" + encodeURIComponent(commentsText)    // ...

在服务器端,解码这个使用:

import urllib
# ...
Comments_ = urllib.unquote(kwargs['Comments']).decode('utf-8'))
于 2012-06-07T04:05:33.000 回答
1

encodeURIComponent()在将它们连接到 POST 请求中之前,请在所有变量上使用。

于 2012-06-07T04:05:21.703 回答