在使用 PHPrawurlencode
将换行符编码为%0D%0A
.
例如:用户输入的 textarea 文本:
a
b
使用 rawurlencode 编码并存储到数据库中会将值存储为a%0D%0Ab
当从数据库中检索和解码时使用rawurldecode
不起作用并且代码给出错误。如何克服这种情况以及存储、检索和显示 textarea 值的最佳方法是什么。
如果上述方法不适合您,您可以先使用此 textarea 字符串编码base64_encode
,然后对其执行 a吗?base64_decode
如果 textarea 不包含 URL,您应该使用base64_encode
thenrawurlencode
然后正常存储。
您根本不应该使用 rawurlencode为您的数据库转义数据。
每种目标格式都有自己的转义方法,一般来说,它可以确保它从一个地方安全地存储/显示/传输到另一个地方,并且不需要在另一端解码。
例如:
您应该注意到,解码这些东西通常是由浏览器/数据库完成的。因此,实际上没有任何数据被转义存储。解码不需要你的代码来完成。
问题可能是因为您使用 rawurlencode 转义序列,但您的数据库需要特定品牌数据库的转义格式。并使用错误的假设将其转义,这弄乱了您的字符串。
结论:找出您正在使用的品牌数据库,查找该数据库的特定转义功能,并对您的所有内容“转移”使用适当的转义功能。
PS:有些定义可能不正确,请评论。我想让这个想法坚持下去,但可能没有使用所有正确的术语。
首先,通过 urlencode() 运行 textarea 是非常罕见的 urlencode 不是为此目的而设计的。
其次,如果您仍然想这样做,那么问题可能来自数据库。首先,您需要告诉我们您使用什么数据库以及您使用什么 TYPE 来存储这些数据:您将其存储为 TEXT 数据还是 BINARY 数据?您是否在数据库中设置了正确的字符集?