|
▼Blue さん:
早速のご教示ありがとうございます。
BOMの削除方法等素人には勉強になることが多く早速活用させて頂きます。
先程の質問の内容にもう一つ初歩の初歩の質問があります。
それは、頂いたサンプルに以下を追加しました。
.WriteText "あいうえお"
.WriteText "正常?束" <--追加行
既に文字化けして見えます。
「正常?束」は、EXCELシート上では文字化けをしていない簡体字で、
ダブルコーテーションの間にコピー&ペーストをして追加行を作りました。
また、xyzzyで確認する為にBOMを削除しないようにして(.position=3を0)
実行しました。
しかし、xyzzy上で開いた結果、「正常?束」と?マークがでて文字化けの状態(期待した簡体字ではない)です。
どのようにしたら期待した簡体字を正しく見ることが出来るのでしょうか?
何か基本的な点を理解していないような気もして、
1)コピー&ペーストの時にコード変換がなされてしまっうのか?
2)出力するテキストに貼り付ける(wkText = Cells(n, m).Value)時に、
何か考慮しなけらばならないのか?
のような、中国語を扱うときに理解していなければならない点がありましたらご教示お願い致します。
>UTF-8NはBOMなしのUTF-8コードになります。
>
>UTF-8コードのテキストはADODB.Streamオブジェクトを使えば出来ますので、
>そこからバイナリモードでファイルを開いてでBOMを削除して再度保存すれば
>UTF-8Nコードのテキストが出来ます。
>
>例)
>Const adTypeText = 2
>Const adTypeBinary = 1
>Const adSaveCreateOverWrite = 2 ' adSaveCreateNotExist = 1
>
>Dim bytData() As Byte
>
>With CreateObject("ADODB.Stream")
> .Open
> ' UTF-8に変換
> .Type = adTypeText
> .Charset = "UTF-8"
> .WriteText "ABC"
> .WriteText "あいうえお"
>
> ' 先頭のBOM取り
> .Position = 0
> .Type = adTypeBinary
> .Position = 3
> bytData = .Read
> .Close
>
> ' UTF-8Nコードのデータを保存
> .Open
> .Type = adTypeBinary
> .Write bytData
> .SaveToFile "任意のファイル名", adSaveCreateOverWrite
> .Close
>End With
|
|