上传时从字符串中删除换行符

Posted

技术标签:

【中文标题】上传时从字符串中删除换行符【英文标题】:Removing newline char from string on upload 【发布时间】:2021-08-09 02:17:54 【问题描述】:

使用以下内容创建了一个新表:

LOAD DATA LOCAL INFILE 'C:/ProgramData/mysql/MySQL Server 8.0/Uploads/new_tbl_1.csv' 
INTO TABLE tbl_1
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS

我发现我无法加入此表的最后一列,因为要添加一个额外的字符。

例如,如果我在一条写着“蓝色”的记录上检查 length(field_1),它将返回长度 4,除非它是表中的最后一个字段,在这种情况下它返回长度 5。

复制可见记录并粘贴到电子表格时,粘贴如下: 'Blue\r'

我是否上传错误?我该如何解释这个换行符,以免它破坏JOIN

【问题讨论】:

这是一个 CR 字符。将\n 更改为\r\n @Barmar 美丽。任何帮助理解为什么添加它,以及何时使用这两者\r\n? 没有添加,在文件中。 在 Windows 上,CRLF 是正常的换行顺序。 Windows 风格 - NewLine 是 '\r\n'。 Unix 风格 - NewLine 是'\n'。 Anycase input preprocessing 可能会考虑到这一点并删除多余的'\r'(如果存在)。 【参考方案1】:

正如 cmets 所指出的,在 Windows 上,而不是:LINES TERMINATED BY '\n' 它需要额外的 \r,例如:LINES TERMINATED BY '\r\n'

【讨论】:

以上是关于上传时从字符串中删除换行符的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 删除 json 文件中的新换行符。

删除引用字符串中的换行符[重复]

从字符串 PHP 中删除换行符 [重复]

从字符串中删除“\n”,但留下实际的换行符?

根据开始和结束模式删除字符串并在过程中删除换行符

PHP 从字符串中删除换行符