在SQL脚本中通过Wix插入阿拉伯语文本

时间:2016-08-17 07:11:33

标签: sql-server character-encoding wix right-to-left wix3.8

我在插入语句中有阿拉伯语文本的插入?????或通过WIX SQL脚本的一些有线字符

<sql:SqlScript Id='Insertion1' BinaryKey='Insertion' Sequence='3'  ExecuteOnInstall='yes' ContinueOnError='yes' />

这是我用于插入的命令,如

delimiter$$
INSERT INTO
[dbo].[Location]([Id],[LocationDesc],[LocationDesc_AR],[LocationTypeID],[FullLocationDesc_AR],[CreateDate],[UpdatedDate],[CreatedBy])
VALUES(566,'Al Souq JTC',N'السوق','1',N'تقاطع السوق','4/21/2014 12:42:51
PM','4/21/2014 12:43:24 PM','')$$
delimiter $$

当我运行脚本时它的工作正常但是通过WIX TOOL SET它没有正确插入。

1 个答案:

答案 0 :(得分:0)

查看您的查询代码我想:哦,当然!你阿拉伯文字面前的领先N不见了。至少我在浏览器中看不到它。

我将你的代码复制到我的SQL窗口 - 魔术! - 领先的N就在那里......

通过文本中的箭头键跳转显示,该实际字符串被隐式定义为RTL(从右到左),您甚至无法通过将鼠标移到它上来标记它。

这是在SQL Server中使用的两个示例

SELECT N'السوق'
SELECT N'تقاطع السوق'

如果没有N,您会收到问号

SELECT 'السوق'
SELECT 'تقاطع السوق'

我的假设:您的工具无法处理RTL字符。即使是这里的Chrome浏览器也无法......领先的N在某种程度上被吞噬了......

更新测试其他换行符的影响

您的代码,只需复制和粘贴即可。 领先的N在那里但是看不见!!

INSERT INTO
[dbo].[Location]([Id],[LocationDesc],[LocationDesc_AR],[LocationTypeID],[FullLocationDesc_AR],[CreateDate],[UpdatedDate],[CreatedBy])
VALUES(566,'Al Souq JTC',N'السوق','1',N'تقاطع السوق','4/21/2014 12:42:51
PM','4/21/2014 12:43:24 PM','')

逗号前的换行符

INSERT INTO
[dbo].[Location]([Id],[LocationDesc],[LocationDesc_AR],[LocationTypeID],[FullLocationDesc_AR],[CreateDate],[UpdatedDate],[CreatedBy])
VALUES
(566
 ,'Al Souq JTC'
 ,N'السوق'
 ,'1'
 ,N'تقاطع السوق'
 ,'4/21/2014 12:42:51 PM'
 ,'4/21/2014 12:43:24 PM','')

至少我的浏览器显示前导N如果没有绑定在一起而没有任何空白或换行符......试一试......

更新2

我上面的工作示例在一行中起作用:

SELECT N'السوق',N'تقاطع السوق'

但是现在尝试在它们之间放置非RTL值(必须把它称为非阿拉伯语,以表明我的意思):

SELECT N'arabic',123,N'arabic'

我的浏览器完全混淆了这一点,你的工具很可能......