我有一个 Delphi XE2
Datasnap 服务器,我需要从数据库接收一个带有换行符的字符串,并将其作为 JSON 字符串
重新发送到客户端应用程序。问题是我收到的字符串带有 #10#13
换行符,而我的客户端需要 \n
换行符。这似乎是发送换行符的 JSON 默认方式,我原以为转换是自动的,但似乎并非如此。
我正在考虑实现一种自己的转换方法,但这将是最坏的情况,并且我想避免可能的“重新发明轮子”的情况。所以我的问题是,有更好的选择吗?
最佳答案
#10
是换行符或换行 (LF) 字符,在 C 派生语言中表示为 \n
,而 #13
是一个回车符 (CR),表示为 \r
。 Windows 和某些 Internet 协议(protocol)(例如 SMTP 和 HTTP)中的通常顺序是 \r\n
。
不幸的是,不同的操作系统使用不同的换行符(另请参阅 http://en.wikipedia.org/wiki/Newline )
Delphi(或您使用的 JSON 框架)无法猜测您的换行预期。恐怕您必须编写额外的代码才能使换行适合您的客户。
实际上,可能发生的情况是字符串来自数据库或其他源,它们以文字 CR LF 序列存储。 Delphi 只是将它们原样传递。
在做任何工作之前,请确保客户真正关心。
关于json - 发送带有 "\n"换行符的 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022780/