4

SSRS レポートの URL 文字列を生成する必要があります (CRM ソフトウェアとリンクするため)。レポート名はヘブライ語です。URL 文字列 (Heb 付き) を Internet Explorer に送信すると、アドレスが認識されません。これは、パーセント エンコーディングでエンコードされていないためです (ところで、Firefox では正常に動作します)。(英語のみの URL を送信しても問題ありません。)

とにかく、エンコードを実行しようとしました。UNICODE文字でURIに変換することに成功しました。UTF-8で URI を取得する必要があります。たとえば、文字 'י' は、'%05%D9' ではなく、'%d7%99' に変換する必要があります。

リンクを含めました: 必要に応じて使用するためのコードを含む表。

1文字の変換\エンコード機能が必要です。完全な文字列の残りのスクリプト/関数を自分で作成できます。

master.sys.fn_varbintohexstr 関数を使用するスクリプトを使用しました。ただし、前述のとおり、結果は IE には適切ではありません。

以下:

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

パーセントエンコーディングにフォーマットした0xd905を取得します。代わりに「d7 99」を取得する必要があります。

まとめ: ヘブライ文字を URI パーセント エンコーディングに変換します。ユニコードの結果が得られます。私は > utf8 の結果を得たいと思っています。入力 = ' '。現在の出力 = %d9。必要な出力 = %d7%99

どうすればそれらの結果を得ることができますか?

4

1 に答える 1

0

私はいくつかの同様の問題に対処しなければなりませんでしたが、考慮したい 2 つのアプローチがあります。1 つ目は、クエリでデータを HTML に変換し、結果を RDL で HTML としてレンダリングすることです。2 つ目は、JQuery を使用して、クライアントで不適切な値を持つセルを識別し、そのセルを変換します (再び JQuery を使用して)。 )。2 番目のオプションの利点は、サーバー レンダリングが 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 に答える