Results 1 to 4 of 4
  1. #1
    Join Date
    Sep 2004
    Posts
    2

    Unanswered: arabic characters are not saved (was "A serious problem ...- plz. help"

    Dear all ..
    i have a serious problem & all ur comments will be appreciated..

    i have bought an ASP .NET publishing tool which i receieved an sql script with it to execute on either Ms sql server or MSDE .

    i executed it on MSDE as i don't have Ms sql server on my windows dedicated server .

    I wanted the tool for publishing (Arabic Language)content for a highly traffic soccer website..

    After executing the sql script i tested the tool but i found arabic characters are not saved when i add articles .. they were saved as question marks (??).

    so i re-executed the sql script on a new db after modifying every code containg (varchar) to (nvarchar) to support unicode & thus arabic.

    it worked & i succeeded in saving arabic articles

    BUT >>>>>>>>>>>>>

    i found that only short arabic articles r saved fine while any article that reaches around (1 microsoft word page) is not saved well with arabic characters but saved as question marks ( ??? ) .. !!

    =======

    so i checked the db tables using ASP.NET Enterprise manager & i found that

    the field of article has (ntext) & infront of it number 16 ..

    it seems that the (ntext) has a limit to wt it can save ..

    so i believe there's a way which i don't know to make the (ntext) accepts long articles entry .

    ========

    Here's the code in the original sql script i received with the tool & i hope u can guide me in details to any modification to do so that the ntext limit is raise to save any long arabic article.

    ========

    code :
    Code:
    CREATE TABLE [dbo].[xlaANMarticles] (
    	[articleid] [int] IDENTITY (1, 1) NOT NULL ,
    	[posted] [nvarchar] (50) NOT NULL ,
    	[lastupdate] [nvarchar] (50) NOT NULL ,
    	[headline] [nvarchar] (350) NOT NULL ,
    	[headlinedate] [nvarchar] (255) NOT NULL ,
    	[startdate] [nvarchar] (50) NOT NULL ,
    	[enddate] [nvarchar] (50) NOT NULL ,
    	[source] [nvarchar] (255) NOT NULL ,
    	[summary] [nvarchar] (3000) NOT NULL ,
    	[articleurl] [nvarchar] (1000) NOT NULL ,
    	[article] [ntext] NOT NULL ,
    	[status] [tinyint] NOT NULL ,
    	[autoformat] [nvarchar] (50) NOT NULL ,
    	[publisherid] [int] NOT NULL ,
    	[clicks] [int] NOT NULL ,
    	[editor] [int] NOT NULL ,
    	[relatedid] [nvarchar] (2000) NOT NULL ,
    	[isfeatured] [nvarchar] (10) NULL ,
    	[keywords] [nvarchar] (255) NULL ,
    	[description] [nvarchar] (255) NULL 
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    i highlighted the specific column for the article field with red color ..

    i tried making it (nvarchar) but the sql manager i use saud it can't be done coz. there has to be a field for TEXTIMAGE coz. it's set to be (on) in the code.

    waiting for ur help plz. ... i am desperate ..

  2. #2
    Join Date
    Jun 2003
    Location
    Ohio
    Posts
    149
    Masry-

    I maximum length of NTEXT is 1,073,741,823 characters. I can't imagine a page of MS word document holding more than that limit. In addition, BOL says prefix the unicode character strings with N. You might want to try with N. Not sure what 16 means.

  3. #3
    Join Date
    Feb 2004
    Location
    In front of the computer
    Posts
    15,579
    Provided Answers: 54
    The problem is that saving Arabic characters (like any unicode or 16 bit characters) requires a full 16 bit data path from begining to end. If any part of the path reverts back to 8 bit characters, then any character that isn't supported by the 16 bit to 8 bit translation will appear as a question mark.

    Apparently something in the data path that handles the translation from Word documents larger than a given (roughly one page) threshold to a database column causes the data to pass through as 8 bit characters. The problem lies in isolating whatever that weak point is!

    -PatP

  4. #4
    Join Date
    Sep 2004
    Posts
    15
    Masry,
    BLOB values are not saved in row, but elsewhere in data file, unless you use sp_tableoption. The 16 in front of ntext column is only a pointer to where the actual ntext value is located.
    But about your problem, I suggest to check the path that your data is traversing to be saved to DB. There might some variables or ... be used that cause the Unicode information be lost!
    Regards,
    Leila

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •