UTF-8文字列のS-JISへの変換


Yama  2007-02-11 17:48:26  No: 24865

どなたか教えてください。
UTF-8のWEBページをNMHTTPで取得した文字列をS-JISへ変換するべく
http://homepage3.nifty.com/m-and-i/tips/utftosjis.htm
のルーチンで変換したのですが、一部文字化けが起きます。
Delph6の文字列関数の組み合わせ、あるいはルーチンがありましたら、
よろしくお願いします。


Mr.XRAY  URL  2007-02-12 00:02:02  No: 24866

この手の文字列変換については知識がないのですが,
文字化けする文字が '<' や '>' という話しではないですよね.


Yama  2007-02-12 18:46:39  No: 24867

Mr.XRAYさんこんにちわ  
貴HP参考にさせて頂いています。
ユニコードの〜¥などの問題ではないようで、<株式>なども化けています。
割合では1割程度の感じなのでなぜだろうと思っています。
D6の関数で何とかなるのかと思ってやってみたのですが、
無理なのでしょうか。


どこから変換してる?  2007-02-12 20:53:55  No: 24868

WinAPIの
MultiByteToWideChar


Mr.XRAY  URL  2007-02-12 21:33:48  No: 24869

もし,半角の  <  >  が文字化けするのであれば,私の言ったことは次の様
なことです.
文字コードとは無関係に,サイトがHTMLで書かれている場合,半角の  <  >
はHTMLのタグ文字と呼ばれています.もしこれをタグではなく文章中に表示
したい時は,このままですとタグ文字と区別がつきません.そこで実際に
は  &lt;  &gt;  という記号を書きます.すると,ブラウザで見たときに,
それぞれ  <  >  に見えるわけです.

だまされたと思って,一度,取得した文字列の中の  &lt;  を  <  に変換し
てみてはいかがでしょうか.もちろんS-JISに変換後の文字列をです.
えっと,その前に文書中にこの  &lt;  という記号文字列があるかを調べた
方がいいですね.


Mr.XRAY  URL  2007-02-12 21:46:38  No: 24870

ごめんなさい.

>UTF-8のWEBページをNMHTTPで取得した文字列をS-JISへ変換するべく

ということですので,多分,UTF-8以外,つまりShift_JISで書かれたWEB
ページに関しては文字化けがないということですね.
前の私のレスは無視して下さい.


Yama  2007-02-12 23:33:57  No: 24871

>どこから変換してる?
>WinAPIの
>MultiByteToWideChar

どこから? 

>ということですので,多分,UTF-8以外,つまりShift_JISで書かれたWEB
>ページに関しては文字化けがないということですね.

EUC,S-JISのページは正常に取得出来ています。
文字化けの規則性、WinAPIの使用などもう少し調べてみます。


Mr.XRAY  URL  2007-02-15 04:32:29  No: 24872

Yamaさん,その後どうでしょうか.ちょっと気になって調べてみました.
以下のページはUTF-8文字コードで作成しました.
どうなるでしょう.

http://homepage2.nifty.com/Mr_XRAY/Others/UTF-8Test.htm


Mr.XRAY  URL  2007-02-15 04:39:12  No: 24873

ちなみに以下はSHIFT_JISで書いたものです.

http://homepage2.nifty.com/Mr_XRAY/Others/S_JISTest.htm


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加