我有一个Delphi XE2
Datasnap服务器,我需要从数据库接收带有换行符的字符串,并将其作为JSON String
重新发送到客户端应用程序。问题是我收到了包含#10#13
换行符的字符串,而我的客户端期望\n
换行符。这似乎是JSON发送换行符的默认方式,我期待转换是自动的,但看起来并非如此。
我正在考虑实现一种转换我自己的方法,但这将是最糟糕的情况,我想避免可能的“重新发明轮子”场景。所以我的问题是,有更好的选择吗?
答案 0 :(得分:2)
#10
是换行符或换行符(LF),在c-derived语言中表示为\n
,而#13
是表示为{{1}的回车符(CR) }}。 Windows和某些Internet协议(例如SMTP和HTTP)中的常规顺序是\r
。
不幸的是,不同的操作系统使用不同的换行符(另请参阅http://en.wikipedia.org/wiki/Newline)
Delphi(或您使用的JSON框架)无法猜测您的换行预期。我担心你必须编写额外的代码才能使换行适合你的客户。
实际上,可能发生的是字符串来自数据库或其他源,它们存储在文字CR LF序列中。德尔福只是不加改变地传递它们。
在做任何工作之前,请确保客户真正关心。