4

我需要为 SSRS 报告生成一个 URL 字符串(以便将其与我们的 CRM 软件链接)。报告名称为希伯来语。当我将 URL 字符串(带有 Heb)发送到 Internet Explorer 时,它无法识别该地址,因为它没有使用百分比编码(顺便说一句,它在 Firefox 中工作正常)。(以这种方式仅发送带有英文的 URL 可以正常工作。)

无论如何,我尝试执行编码。我成功地将其转换为带有 UNICODE 字符的 URI。我需要获取UTF-8中的 URI 。例如,字母 'י' 应转换为 '%d7%99' 而不是 '%05%D9'。

我提供了一个链接: 带有代码的表格,供您使用(如果需要)。

我需要 1 个字符的转换\编码功能。我可以自己构建完整字符串的其余脚本/函数。

我使用了一个使用 master.sys.fn_varbintohexstr 函数的脚本。不过,正如我所说,结果不适合 IE。

以下:

SELECT master.sys.fn_varbintohexstr((CAST (N'י' AS varbinary)))

将得到 0xd905,我将其格式化为百分比编码。我应该得到'd7 99'。

总结:我将一个希伯来字符转换为 URI 百分比编码。我得到一个 unicode 结果。我希望 > 得到一个 utf8 结果。输入 = 'י'。当前输出 = %d9。想要的输出 = %d7%99

我怎样才能得到这些结果?

4

1 回答 1

0

我不得不处理一些类似的问题,您可能希望考虑两种方法;第一个是在查询中将您的数据转换为 HTML,然后在 RDL 中将结果呈现为 HTML,第二个是使用 JQuery 在客户端识别那些具有不正确值的单元格,然后转换该单元格(再次使用 JQuery )。第二个选项的好处是,如果服务器渲染在 Firefox 上工作,则不会调用转换开销。不利的一面是,如果您不将报告呈现为 HTML,它将无法正常工作。

对于第一个选项,在 select 语句中,您需要更改相应的列以生成看起来像的 nvarchar 值

<span style="font=yourfont;" charset="UTF-8"><a href="yourdestination.com" target="_blank">linkname</a></span>

使用该字符串作为数据,然后将其分配给适当的列(或单元格,根据需要)

在 RDL 设计器中,将字段的占位符拖到设计器上,然后右键单击占位符并选择占位符属性,然后您可以选择将内容显示为 HTML。

于 2012-04-08T20:16:12.447 回答