掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
oracleの「〜」を文字化けせずに取得するには? (ID:30392)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
StringReplaceはWideStringに対応していません。 # WideStringを突っ込むと暗黙的にAnsi変換が行われて # 処理されるので、すべての?が〜に変換されてしまいます。 WideStringをforで回すなりして自前で置換する必要があります。 var i:Integer; A: String; WS: WideString; begin WS := (処理); for i:=1 to Length(WS) do if WS[i] = #$301C then WS[i] := #$FF5E; A := WS; こんな感じです。 >Oracleの「〜」と「?」は「#$301C」ということなのでしょうか・・? >「?」は「#$FF1F」だと思ったのですが・・・。 SHIFT-JISの"〜"は波ダッシュ(8160:#$301C)です。 しかし、Windowsはこれを全角チルダ(#$FF5E)に割り当てています。 UnicodeからSHIFT-JISへ変換しようとすると#$FF5Eに相当するJIS文字がないため、 変換できなかった文字の代替文字として設定されている"?(#$FF1F)"が表示されてしまうという事です。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.