gpt4 book ai didi

php - trim() 不会删除数据库字段中的空格

转载 作者:可可西里 更新时间:2023-11-01 07:46:04 30 4
gpt4 key购买 nike

我在 MySQL 的文本字段中的段落开头有一些空格。

在 PHP 中使用 trim($var_text_field) 或在 MySQL 语句中使用 TRIM(text_field) 绝对没有任何作用。这个空格可能是什么,我如何通过代码删除它?

如果我进入数据库并将其退格,它会正确保存。它只是没有通过 trim() 函数被删除。

最佳答案

function UberTrim($s) {
$s = preg_replace('/\xA0/u', ' ', $s); // strips UTF-8 NBSP: "\xC2\xA0"
$s = trim($s);
return $s;
}

不间断空格的 UTF-8 字符编码 Unicode (U+00A0) 是 2-byte sequence C2 A0 .我尝试使用 second parameter to trim() 但这并没有成功。使用示例:

assert("abc" === UberTrim("  \r\n  \xc2\xa0  abc  \t \xc2\xa0   "));

TRIM(text_field) 的 MySQL 替代品|由于@RudolfRein 的评论,这也删除了 UTF 不间断空格:

TRIM(REPLACE(text_field, '\xc2\xa0', ' '))

UTF-8 list :

(更多检查 here )

  1. 确保您的 PHP 源代码编辑器在 Encode in UTF-8 without BOM (Notepad++)UTF-8 mode <强> without BOM 。或者设置在preferences .

  2. 确保您的 MySQL 客户端设置为 UTF-8 字符编码(更多 herehere ),例如

    $pdo = new PDO('mysql:host=...;dbname=...;charset=utf8',$userid,$password); $pdo->exec("SET CHARACTER SET utf8");

  3. 确保您的 HTTP 服务器设置为 UTF-8,例如对于 Apache :

    AddDefaultCharset UTF-8

  4. 确保浏览器需要 UTF-8。

    header('Content-Type: text/html; charset=utf-8');

    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

关于php - trim() 不会删除数据库字段中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5295936/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com