小Z上周回公司的时候,一位同事问我一个问题,是关于前端保存一个形如"\5656565”数据的问题到后端。
开发环境如下,前端JS,后端.NET Framework 4.0。
同事采用JS原生的encodeURI函数在前端进行编译,一度认为“\5”转义成了"\05",即16进制数。而后端采用HttpUtility.UrlEncode函数,即输出结果“\5”为"%2f5"。小Z发现这里需要将“\”先替换成“\\”,然后输出会变成“%5c”,后端接收后通过函数HttpUtility.UrlDecode再转换回来。
这个数据设计是老项目的设计方式,小Z觉得应该避免“\”转义字符,用“|”代替,这样能够避免开发上遇到处理转义字符的问题。
同事还提出了一个解决方案,是后端先将“\”替换成“\\”,然后前端做显示处理。小Z觉得这个解决方案也可采用。
Ok,又搞定一个小问题。