gpt4 book ai didi

mysql - 像 £(英镑)这样的拉丁字符编码在使用 perl 脚本编码后会抛出垃圾值

转载 作者:行者123 更新时间:2023-11-29 12:12:38 24 4
gpt4 key购买 nike

我正在尝试对“£”进行编码并插入到数据库中,它存储为“£”,在获取它时显示为“£”,我对此数据进行了解码,但尽管它显示为“£”。使用perl 脚本,这是我的代码。

#!/usr/local/perl-5.20.1/bin/perl
use HTML::Entities;
$str="£";
$str=HTML::Entities::encode($str);
my $sth = $dbh->prepare("INSERT INTO notes VALUES (null,'FD',?,?)");
$sth->execute('1','2',time(),$str);
$sth = $dbh->execute("SELECT content FROM notes WHERE requestID = 1);
while (my @temp = $sth->fetchrow_array()) {
$note = HTML::Entities::decode($temp[0]);
}

在终端中,对获取的数据库数据进行解码后,它显示为 £ (£)

最佳答案

如果 perl 脚本中的字符超出了 ascii 范围,则必须使用 utf8 并确保您的脚本以 utf-8 编码存储(确实如此)。

现在使用utf8的主要目的是告诉perl您的脚本存储在utf8中。如果您想将其用于其他用途,请先阅读 perldoc perlunicode,可能您需要一些其他编译指示或模块。

您也没有说明您的数据库驱动程序是什么。也许您的数据库能够将值存储为二进制数据,然后您可以使用 Encode::decode 对其进行解码,或者您的驱动程序能够存储 utf-8 文本,然后您可以使用它。

关于mysql - 像 £(英镑)这样的拉丁字符编码在使用 perl 脚本编码后会抛出垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392557/

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