Bonjour tout le monde !

Je souhaiterai créer une fonction qui me permette de convertir une chaîne de caractères en Unicode.

Pour cela je sais qu'il existe la fonction UNICODE() mais celle-ci ne convertit que le premier caractère de ma chaîne.

Voici la fonction que je tente de réaliser :

CREATE FUNCTION [dbo].[convertUnicode] (@chaine nvarchar(MAX))
RETURNS varchar(MAX)
AS
BEGIN
DECLARE @RETVAL VARCHAR(MAX)
DECLARE @position INT
SET @position = 1
WHILE @position <= len(@chaine)
BEGIN
SET @RETVAL = @RETVAL+'&#'+CONVERT(nvarchar(70),UNICODE(SUBSTRING(@chaine, @position, 1)))+';'
SET @position = @position + 1
END
RETURN @RETVAL

END
Je me suis inspirée pour cela de la fonction que j'ai trouvé sur le site de MSDN : http://msdn.microsoft.com/fr-fr/library/ms180059.aspx (Dans la partie B)

Le problème de cette fonction est qu'elle ne me renvoit rien...

Lorsque j'éxecute ce code :

DECLARE @RETVAL VARCHAR(MAX)
DECLARE @position int, @nstring nvarchar(MAX), @chaine NVARCHAR(MAX)
SET @position = 1
SET @nstring = N'موجز ما قبل السوق'
WHILE @position <= len(@nstring) BEGIN
SET @chaine = @chaine + '&#'+CONVERT(nvarchar(MAX),UNICODE(SUBSTRING(@nstring, @position, 1)))+';'
SET @position = @position + 1

END
print @chaine
Rien ne s'affiche...

Par contre quand j'éxecute ce code :

DECLARE @RETVAL VARCHAR(MAX)
DECLARE @position int, @nstring nvarchar(MAX), @chaine NVARCHAR(MAX)
SET @position = 1
SET @nstring = N'موجز ما قبل السوق'
WHILE @position <= len(@nstring) BEGIN
SET @chaine = '&#'+CONVERT(nvarchar(MAX),UNICODE(SUBSTRING(@nstring, @position, 1)))+';'
SET @position = @position + 1
print @chaine
END
ça m'affiche ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
م
و
ج
ز
 
م
ا
 
ق
ب
ل
En espérant trouver une solution.

Cordialement