javascript - 为什么SQL返回的字符串长度和其他语言返回的字符串长度不一样?

标签 javascript python mysql sql-server

我有一个用户用来发送消息的网络应用程序。

问题是消息中的字符数 确定发送消息的成本。

我注意到 javascript UI 代码计算了 字符很好,但 DBMS 的内置函数 有时会返回更多的字符。

这是一个字符串的例子,表现出这种异常 行为:

String with different lengths..
This string has different lengths depending on the programming language use to count the characters.

Transact SQL LEN() and MySQL LENGTH() return 217.

Python len() returns 212.

Javascript 和 Python 中的标准字符串长度函数返回相似的值,但低于 Transact-SQL 的 LEN() 和 DATALENGTH() 以及 MySQL 的 LENGTH() 返回的值(它们也返回彼此相似的值)。

那么为什么会有不同的值呢?

最佳答案

我注意到只有当字符串中包含换行符时才会发生这种情况。

SQL 服务器将 '\r\n' 计为两个字符。

我的解决方案是使用类似的方法来计算字符数

LEN(REPLACE(the_string, CHAR(13), ''))

在计算字符串长度之前去除回车。

stackoverflow entry还有这个one对我帮助很大。

关于javascript - 为什么SQL返回的字符串长度和其他语言返回的字符串长度不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28285209/

相关文章:

python - 如何在python中循环多个文件并逐一处理

mysql - 在mysql表中组合多行值

php - 在 mysql 查询中使用 IF 条件

javascript - Masonry/Isotope.js 无法正常工作

Python 项目版本控制

python - 向 Dynamics CRM Web API 发出请求

php - 为什么我的表单只将 foreach 循环中最后一个字段的输入数据传递到数据库?

javascript - BlobBuilder 和新的 Blob 构造函数有什么区别?

javascript - 基于谷歌地理编码器中未知地址的建议

javascript - jquery 自动完成显示输出字符串