2012-04-08 4 views
3

Ich muss eine URL-Zeichenfolge für einen SSRS-Bericht generieren (um ihn mit unserer CRM-Software zu verknüpfen). Der Berichtsname ist auf Hebräisch. Wenn ich die URL-Zeichenfolge (mit Heb) an Internet Explorer sende, erkennt sie die Adresse nicht, da sie nicht mit Prozent-Codierung codiert ist (übrigens funktioniert das in Firefox). (Das Senden einer URL mit Englisch funktioniert nur auf diese Weise.)T-SQL-Code zum Konvertieren von Nvarchar-Zeichenfolgen in UTF-8 (für die prozentuale URL-Codierung)

Wie auch immer, ich habe versucht, die Codierung durchzuführen. Ich habe es geschafft, es mit UNICODE-Zeichen in URI umzuwandeln. Ich muss die URI in UTF-8 bekommen. Zum Beispiel sollte der Buchstabe "é" in "% d7% 99" und nicht in "% 05% D9" umgewandelt werden.

enthalten einen Link I: A table with the codes, for your use, if needed.

ich brauche die Funktion \ Kodierungsumwandlung für 1 Zeichen. Ich kann den Rest des Skripts/der Funktion für die komplette Zeichenfolge selbst erstellen.

Ich verwendete ein Skript, das die Funktion master.sys.fn_varbintohexxtr verwendete. Wie ich bereits sagte, sind die Ergebnisse nicht für IE geeignet.

folgendes:

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

0xd905 bekommen, die ich in Prozent Codierung formatiert. Ich sollte stattdessen "d7 99" bekommen.

einpacken: Ich konvertiere ein hebräisches Zeichen in URI Prozent-Codierung. Ich bekomme ein Unicode-Ergebnis. Ich möchte> ein utf8-Ergebnis erhalten. Eingabe = 'é'. Aktuelle Ausgabe =% d9. Wollte Ausgabe =% d7% 99

Wie kann ich diese Ergebnisse erhalten?

+0

Mit welcher Version von SSRS arbeiten Sie? –

+0

Version 2008 (10) –

+0

Siehe auch https://stackoverflow.com/questions/35200452/compute-md5-hash-of-a-utf8-string/35289890#35289890 für eine Beschreibung der Umwandlung einer Zeichenfolge in UTF-8 codiert Bytes. – Ben

Antwort

0

Ich hatte mit ein paar ähnlichen Problemen zu tun, und es gibt zwei Ansätze, die Sie in Erwägung ziehen sollten; Der erste besteht darin, Ihre Daten in der Abfrage in HTML umzuwandeln und das Ergebnis dann als HTML im RDL zu rendern. Mit JQuery können Sie dann die Zellen mit dem falschen Wert auf dem Client identifizieren und dann diese Zelle transformieren (wiederum mit JQuery). Der Vorteil der zweiten Option ist, dass, wenn das Server-Rendering mit Firefox arbeitet, der Transformations-Overhead nicht aufgerufen wird. Der Nachteil ist, dass wenn Sie den Bericht nicht als HTML rendern, es nicht funktioniert.

Für die erste Option in der select-Anweisung Sie die entsprechende Spalte benötigen würde ändern, um eine nvarchar-Wert zu erzeugen, die

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

Mit dieser Zeichenfolge als Daten, die Sie dann, dass zuweisen an den entsprechenden wie

aussieht Spalten (oder Zellen, je nach Bedarf)

Ziehen Sie im RDL-Designer einen Platzhalter für Ihr Feld auf den Designer und klicken Sie mit der rechten Maustaste auf den Platzhalter und wählen Sie placeholder properties, dann können Sie den Inhalt als HTML anzeigen.

Verwandte Themen