【发布时间】:2017-07-02 18:57:14
【问题描述】:
我正在使用:
random_bytes(30);
为我的程序生成一个随机字符串。然后将该字符串存储在 mysql 数据库中。但是,当我运行该函数时,我会得到一个输出,例如
T�Ը�@(���m
其中包括不可读的字符。然后,当我尝试将其存储在我的数据库中时,未存储 � 字符,因此这意味着该字符串未正确保存。
我怎样才能让它返回一个只有可读字符的字符串,不会在我的 mysql 数据库中丢失?
谢谢!
【问题讨论】:
-
我认为一些关于 UTF-8 的阅读可能会对您有所帮助,但是随机字节???莎士比亚全集,你期待什么?
-
学习一些小型的 abiuyt 字符编码对您很有帮助,一个好的起点是 ASCII 然后是 unicode,特别是 UTF-8,因为它通常用于交换。
-
与您尝试做的最接近的可能是
Random::asciiPrintableString($length)。这就是可以在屏幕上打印或看到的所有字符。但是,如果您想在 URL 中使用该随机字符串,例如,您会想要Random::base64UrlString($length)之类的东西,而不需要在 URL 中编码或转义的字符。