1

我有一个 Android 应用程序,用户可以在其中提出问题。这个问题被发送到服务器,服务器又将它发送到我的电子邮件。我回复了这个问题,然后回复被发送回了服务器。响应存储在 MySQL 数据库中。用户将轮询服务器,并在响应可用时将响应拉到他们的手机上。手机上显示回复时,格式不对。有特殊字符和额外的空格显示。

下面是一个响应发送到服务器并放入数据库时​​的示例:

我们生活在一个以利润为导向的社会中,整个人民的更大利益往往被抛到一边,有利于增加个人财富。当道德被抛在后面时,资本主义将不会按照预期的方式运作。

当政客上台时,他们通常不是为普通民众而战,而是为最高出价者而战。代表大公司或某些特殊利益集团的游说者将通过财政捐助说服政客将他们的利益置于公众利益之上。这是最好的偏袒和裙带资本主义。

我觉得有一天我们会超越这个吗?我很愿意相信,但有时感觉我们目前的生活方式束缚了我们。无论是恐惧还是普遍缺乏批判性思维使人们无法追求我们应该拥有的世界/社会,都必须做出改变。我们要么达到一个突破点并采取行动,要么这个系统将继续以它的方式运行。我会用埃德蒙·伯克(Edmund Burke)的一句名言留给你,“邪恶胜利的唯一必要条件是好人什么都不做。”

这是它被拉到手机上后的样子(我缩短了格式错误的响应,但其余部分看起来就像它的这一部分):

我们生活在一个以利润为导向的社会
中,人们的更大利益 往往会被抛到
一边 ,有利于增加个人 财富。=当道德 被抛在后面时 ,资本主义将无法 按照其预期的方式 运作.






当政客们上台时,
他们通常不是在为
公众而战
,而是在为最高出价者而战。

我在响应进入数据库之前这样做:

$message = $dbhandler->real_escape_string($_POST["message"]);

当我使用包含响应的列创建表时,我为该列分配了 TEXT 字段。

我不明白将响应放入数据库或从中提取时发生了什么。它有那些等号和额外的空格。有人可以对此有所了解并提供补救措施吗?

编辑

我从数据库中检索响应,如下所示:

$response = $dbhandler->query("SELECT response FROM qar WHERE id='$rowId'");

$row = $response->fetch_row();
if($row[0] != NULL) {
    echo($row[0]);
}
4

1 回答 1

1

您正在寻找的答案就在您的问题本身中:

这个问题被发送到服务器,服务器又将它发送到我的电子邮件

登录您最喜欢的终端并为每个块运行以下命令并观察输出:

$ echo -en "We live in a profit-driven society and the greater good of the people as a w" | wc -c
76
$ echo -en "hole tends to get thrown to the wayside in favor of increasing one's wealth." | wc -c
76
$ echo -en "\nCapitalism will not function the way its intended to when morals are left b" | wc -c
76

看到图案了吗?

发生这种情况是因为您的电子邮件使用带引号的可打印编码,该编码将每行拆分为 76 个字符,并使用“=”字符表示行继续。(除其他事项外。)

您有多种选择:

  • 自己编码/解码引用的可打印正文。
  • 使用替代电子邮件编码而不是引用打印(base64 效果很好)
  • 在超出 76 个字符的行限制之前,手动拆分引用的可打印电子邮件正文的行。
于 2013-08-24T07:03:10.430 回答