Soran
Netsis Turkce Karakter Sorunu

Soru
-
Merhabalar,
Netsis kullanıcıları, database'nin Türkçe karakter sorunundan muzdarip.
Dili değiştiremeyince Functions ile sorunun üstesinden gelmekte.
Bende aşağıdaki gömülü fonksiyon ile işimi çözmeye çalışıyorum.
Fakat ne yaparsam yapayım İ > I, Ğ > G, Ş > S oluyor
Ş yerine S
İ yerine I
Ğ yerine G olarak görüntülüyorum. Çaresini bulan var mı ?
------------------------------------------------------------------------
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[TRK2] ( @girdi VARCHAR(MAX) )
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @sonuc VARCHAR(MAX)
SET @sonuc = @girdi
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'ğ');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'Ğ');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN, N'Ð', N'Ğ');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ý', N'ı');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Ý', N'İ');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'þ', N'ş');
SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Þ', N'Ş');
SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(220), N'Ü')
SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(214), N'Ö')
SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(199), N'Ç')
SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(73), N'I')
SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(252), N'ü')
SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(246), N'ö')
SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(231), N'ç')
RETURN @sonuc COLLATE Turkish_CI_AS ;
END
GO
Tüm Yanıtlar
-
Veritabanı ve ilgili fieldların collation'ını ne? Turkish_CI_AS gibi olduğundan emin olun.
-
Merhaba,
Alternatif olarak kodu aşağıdaki gibi değiştirip deneyebilir misiniz.
ALTER FUNCTION [dbo].[TRK2] ( @girdi nVARCHAR(MAX) ) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @sonuc NVARCHAR(MAX) SET @sonuc = @girdi SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'ğ'); SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'Ğ'); SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN, N'Ð', N'Ğ'); SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ý', N'ı'); SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Ý', N'İ'); SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'þ', N'ş'); SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Þ', N'Ş'); SET @sonuc = REPLACE(@sonuc COLLATE Latin1_General_BIN, CHAR(220), N'Ü') SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(214), N'Ö') SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(199), N'Ç') SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(73), N'I') SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(252), N'ü') SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(246), N'ö') SET @sonuc = REPLACE(@sonuc COLLATE LATIN1_GENERAL_BIN, CHAR(231), N'ç') RETURN @sonuc COLLATE Turkish_CI_AS ; END GO
Vedat ÖZER vedatozer@outlook.com
-
-
-