文本中的换行符问题 - UITextView 到 sqlite、sqlite 到 JSON(通过 NSString)、JSON 到 PHP
我有一个 UITextView 最终将文本发送到 iPhone 上的 sqlite 数据库。稍后,我将从 sqlite 查询此数据,将其放入 JSON 字符串中,并使用 ASIHTTPRequest
(使用 ASIFormDataRequest
)将其从 iPhone 发送到服务器(PHP/MySQL)班级)。
存在一种数据情况,发送到 PHP 的数据无法正确解码(使用 json_decode
)。数据条件似乎是通过 UITextView 输入到 sqlite 的文本中有换行符的地方。
我测试过的内容:
- 将我尝试发送到服务器的相同 JSON 字符串写入 iPhone 上的文本文件中。获取该文本,将其复制到一个 Web 表单(我将其放在一起用于此故障排除),该表单将数据 POST 到从 iPhone 接受 JSON 的同一 PHP 脚本。此过程成功(例如解码并写入 MySQL 数据库)。
- 写出我尝试发送到服务器到控制台的相同 JSON 字符串(使用
NSLog
)。从控制台复制文本并将其复制到 Web 表单中,该表单将数据 POST 到从 iPhone 接受 JSON 的同一 PHP 脚本。此过程成功(例如解码并写入 MySQL 数据库)。 - 删除 sqlite 数据库中的换行符,运行应用程序并将 JSON 按设计发送到服务器,没问题......它解码并写入 MySQL 数据库。
我想在文本中保留换行符,因为这是用户输入的内容以及他们在服务器上看到信息时所期望的内容。不确定如何保留换行符,同时能够将数据发送到服务器而不出现任何问题。
谢谢,
肖恩
I have a UITextView that ends up sending the text to a sqlite db on the iPhone. Later on I will be querying this data from sqlite, putting it into a JSON string and sending it to a server (PHP/MySQL) from the iPhone using ASIHTTPRequest
(using ASIFormDataRequest
class).
There is a data condition where this send to PHP fails to decode properly (using json_decode
). The data condition seems to be where there's a newline in the text that was entered to sqlite via the UITextView.
Things I've Tested:
- Write out the same JSON string that I'm trying to send to the server to a text file on the iPhone. Take that text, copy it into a web form (that I put together for this troubleshooting) that POSTs the data to the same PHP script that accepts the JSON from the iPhone. This processes successfully (e.g. decodes and writes to the MySQL db).
- Write out the same JSON string that I'm trying to send to the server to the console (using
NSLog
). Copy the text from the console and copy it into a web form that POSTs the data to the same PHP script that accepts the JSON from the iPhone. This processes successfully (e.g. decodes and writes to the MySQL db). - Remove the newline in the sqlite db, run the app and send the JSON to the server per design, no problem...it decodes and writes to the MySQL db.
I want to keep the newline in the text as that is what the user typed and what they will expect when they see the information on the server. Not sure how to keep the newline and at the same time be able to send the data to the server without any issues.
Thanks,
Shawn
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您如何创建 JSON 字符串?
换行符应在 JSON 中编码为两个字符:\n
How are you creating the JSON string?
The newline should be encoded in the JSON as two characters: \n