Search code examples
sqlreplacechararabic

when i replace 'ت' sql change all 'ت' and 'ة', how can i fix it?


when i replace 'ت' sql change all 'ت' and 'ة'

 declare @name as nvarchar(max); 
set @name  = N'ةاتی تو را است ت'; 
declare @char1 as nvarchar; 
set @char1 = N'ت'; 
declare @char2 as nvarchar; 
set @char2 = N'ب'; 
select replace(@name, @char1 ,@char2);

Solution

  • Try this

    declare @name as nvarchar(max); 
    set @name  = N'ةاتی تو را است ت'; 
    declare @char1 as nvarchar; 
    set @char1 = N'ت'; 
    declare @char2 as nvarchar; 
    set @char2 = N'ب'; 
    select replace(@name Collate Persian_100_CI_AI, @char1 ,@char2);
    

    to see all available collations, you may want to change CaseSensitive/Insensitive and/or Accent...

    SELECT * FROM ::fn_helpcollations() FH WHERE name LIKE '%Persian%'
    

    It also might be a good idea to google for other questions and results, see Problem with Persian_CI_AI collation And 'ك' character