none
編碼問題 RRS feed

  • 問題

  • 各位前輩請教一下
    目前在站上討論的編碼問題
    一般都是補完計畫再加上n開頭的欄位型態
    這種方式目前我在簡體中文和日文是正常的
    不管是在欄位上或是報表及Gride都是正常的
    可是我目前用到韓文上面就又不行了
    只有欄位是正常的,其他像Gride和報表出來都是問號
    有沒有前輩知道韓文的部分又該如何解決?


    2007年7月31日 上午 03:57

解答

  • 你把兩個東西搞混了。

     

    Unicode 補完計畫針對的對象是 ANSI 相容編碼的 big5 ,是民間解法。

     

    SQL Server 在查詢字串加上 N'xxx' 是針對 Unicode ,是官方解法。

     

    兩個東西針對的字元編碼不同,不是同一件事。

     

    所以有可能是你寫入字串時,就沒有處理 Unicode 編碼問題,這要看你寫入的語法才知道,查詢語法看不出來。

     

    2007年7月31日 上午 08:47
    版主

所有回覆

  • 沒用過補完計畫。

    通常只要加上 "n" 的型別(如nchar, nvarchar),都可以支援 Unicode。

     

    2007年7月31日 上午 04:33
    版主
  • 你講的意思我了解
    以下是我用的程式馬
    還是說請你看一下
    因為我select出來的資料丟到gride上去顯示
    韓文的部份就是會顯示出問號
    可是如果我將補完計畫移除的話
    連我的日文都會有問題
    另外有沒有可能是SQL  2005再安裝的時候字元集的關係(我是用預設的沒有去更改)
    select S_rech_erpid,S_reci_merdid,S_merd_name,S_merd_isbn,S_reca_sbudid,S_ownd_id,
    sum(L_reca_takenum) as L_reca_takenum,S_reci_unit,D_reci_predate,
    D_reca_takedate,S_reca_emplid,L_reca_merdsysno,S_sbud_name
    from reci_arive join reci_item on L_reca_recisysno=L_reci_sysno
    join reci_head on L_reca_rechsysno=L_rech_sysno
    join mer_data on L_reca_merdsysno=L_merd_sysno
    left join owner_data on L_reci_owndsysno=L_ownd_sysno
    join sbu_data on S_reca_sbudid=S_sbud_id
    where L_reca_rechsysno=" & Trim(Adodc1.Recordset!L_rech_sysno)
    group by S_rech_erpid,S_reci_merdid,S_merd_name,S_merd_isbn,S_reca_sbudid,S_ownd_id,
    S_reci_unit,D_reci_predate,D_reca_takedate,S_reca_emplid,L_reca_merdsysno,S_sbud_name
    order by S_reci_merdid,D_reca_takedate


    S_merd_name 為 nChar(100)
    2007年7月31日 上午 05:10
  • 你把兩個東西搞混了。

     

    Unicode 補完計畫針對的對象是 ANSI 相容編碼的 big5 ,是民間解法。

     

    SQL Server 在查詢字串加上 N'xxx' 是針對 Unicode ,是官方解法。

     

    兩個東西針對的字元編碼不同,不是同一件事。

     

    所以有可能是你寫入字串時,就沒有處理 Unicode 編碼問題,這要看你寫入的語法才知道,查詢語法看不出來。

     

    2007年7月31日 上午 08:47
    版主