2016-05-17 16 views
-1

何らかの理由で、XMLフィールドをクエリするとVisual Studioで特別な文字が表示されません。多分私はそれらを間違って保管しましたか?これらは、スマート引用符ですXMLスタジオでXMLの特殊文字が表示されない

ここでは、クエリです:

select CustomFields from TABLE where ID=422567 FOR XML PATH('') 

This is how it looks in VX

私はコピー/私はこれを見++メモ帳に貼り付けるには:

What are STS and CCH?

STSとCCHは何ですか?

+1

[文字参照](https://en.wikibooks.org/wiki/Unicode)に基づいて送信状態/キャンセル文字を設定します。/Character_reference/0000-0FFF#endnote_CCH) – lad2025

+0

@ lad2025興味深い。まだ彼らがなぜ表示されないのかまだ分かりません。 – sproketboy

+0

あなたのXMLを画像として投稿しないでください。あなたの質問をcopy'n'pasteableテキストで編集してください... – Shnugo

答えて

1

文字列は、あなたが知っている通り、数字の連鎖でしかありません。彼らは何を意味し、それらがどのように解釈されているコードページ、エンコーディング、ほとんど、またはビッグエンディアンに依存している...

ただ、これは、この

<NormalText>test</NormalText> 
<ACK>&#x6;</ACK> 
<BEL>&#x7;</BEL> 
<CR>&#x1A;</CR> 
<ESC>&#x1B;</ESC> 
<BigA>A</BigA> 
<Tilde>~</Tilde> 
<STS>“</STS> 
<CCH>”</CCH> 
<Mixed>“test”</Mixed> 

が生成されます。この

SELECT 'test' AS NormalText 

     --non printable characters 
     --they are things like backspace, carriage return 
     ,CHAR(0x6) AS ACK --DEC 7 
     ,CHAR(0x7) AS BEL --DEC 9 
     ,CHAR(0x1A) AS CR --DEC 13 
     ,CHAR(0x1B) AS ESC --DEC 27 

     --printable characters from 0x21 (DEC 33) up to 0x7F (DEC 127) - (almost) not depending on encoding 
     ,CHAR(0x41) AS BigA --DEC 65 
     ,CHAR(0x7E) AS Tilde --DEC 126 

     --extended - from 0x80 (DEC 128) - very much depending on encoding! 
     ,CHAR(0x93) AS STS --DEC 147 
     ,CHAR(0x94) AS CCH --DEC 148 
     ,CHAR(0x93) + 'test' + CHAR(0x94) AS Mixed 
FOR XML PATH('') 

に顔をしていますご覧のとおり、エンコーディングされなければならない文字があります。文字式がないため、他の文字は対応する "ピクチャ"で表示されます。

DEC 127を超えるコードでは、危険な地形に入ることがあります。同じ文字列は、読んだ場所によってかなり異なる出力を生成する可能性があります。

「STS」と「CCH」のメモ帳は、C1 Controls and Latin-1 Supplementから取得しています。

これと書かれたスマートqoutesあなたの例では、thisを指しています。 スマートqoutesを許可するために、開始エンドの一般的な文字が、フィッティングの開閉記号で「置き換えられる」。

最後に、SQL ServerのXMLは常にUTF16です。 this feff0093 and feff0094をご覧ください。これらは、UTF16が0x930x94にバインドする符号です。私の小さな例はこれをはっきりと示しています...

質問は:が表示されないのはなぜですか?

わかりません... select最初の行に入力すると、このXMLが生成されず、既存のXMLが「CustomFields」列から削除されます。私はかなり確信していますが、これは実際のXML列ではありません。

+0

ありがとうございました。私は正しくXMLを格納していません - 私はこれらの文字のエンティティを使用する必要があります。 – sproketboy

関連する問題