gpt4 book ai didi

windows - 如何使用 Spreadsheet::WriteExcel 从 MSSQL Server nvarchar 列输出欧元符号

转载 作者:可可西里 更新时间:2023-11-01 12:04:47 25 4
gpt4 key购买 nike

我在 MSSQL 2008 服务器的 nvarchar 列中有带有 € 符号的文本,我想通过 Spreadsheet::WriteExcel 将该文本转储到 Excel 文件中,但我总是得到一些有线注销而不是 €。

直到现在,我都直接在 perl 中将我的字符串放在一起,并且总是使用类似

my $euro = chr 0x20AC;
$worksheet->write($currentline, $currentcolumn, "Some text here".$euro ,$format);

一直有效。

有什么提示吗?

  • ActivePerl v5.10.0
  • Windows
  • MSSql 服务器 2008
  • 按 ADO 访问 => Win32::OLE->new("ADODB.Recordset");

最佳答案

Unicode handling in Spreadsheet::WriteExcel相对简单:如果您尝试写入的字符串是 utf8 格式,那么它将完全按照您的预期写入 Excel 文件。

确保您编写的字符串为 utf8 格式并不总是那么简单。

要解决此问题,您只需要弄清楚来自 MSSQL 的字符串的编码方式,然后使用编码模块将它们转换为 utf8。例如:

use Encode 'decode';

my $string = 'some string with koi8-r characters';
$string = decode('koi8-r', $string);

$worksheet->write('A1', $string);

查看上面 WriteExcel 部分中链接的 unicode perldocs 以获得一些背景信息。

关于windows - 如何使用 Spreadsheet::WriteExcel 从 MSSQL Server nvarchar 列输出欧元符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6143741/

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