HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
0419
大富豪文字化けする謎の文字 −4解決


大富豪

リンク

2024/4/19(Fri) 23:57:36|NO.101569

clipgetでクリップボードの文字列を取得⇒mesで表示する際、
なぜかグーグルが生成する特定の文字が文字化けします。
(住所に含まれる番地のハイフン)



半角/全角の数字と記号の混在をテストすると
一切文字化けしないのですが、
グーグルの−だけ文字化けします。

"−"
この一文字だけでも−が[?]に文字化けします。
この謎の文字、 − はなんなんでしょうか、
そのまま正常にテキストで取得するにはどうすればいいでしょうか。



この記事に返信する


大富豪

リンク

2024/4/20(Sat) 00:19:51|NO.101570

エディタに文字を張り付けると、
半角のマイナスとスペースが一文字になったような文字になっています。

−⇒-



大富豪

リンク

2024/4/20(Sat) 12:55:21|NO.101574

本来は文字化けしない方法があればいいのですが・・・
予測不能な文字化けに対応できない可能性があるのはNGなのですが、
文字化けは文字化けのままにしておき、
文字列の置き換えで処理する事にしました。



沢渡

リンク

2024/4/20(Sat) 12:55:53|NO.101575

どうもこの記号、UnicodeのU+2212の、「ASCIIの半角ハイフンとも
U+FF0Dの全角ハイフンとも違う、似て非なる記号」という
非常にややこしい代物のようですね。
対処法としては、
・hspextのclipgetではなく、以下のサイトの「クリップボード操作モジュール」を
導入し、clipgetの代わりにClipB_GetTextを使う。
https://menyukko.ifdef.jp/cauldron/hmclipboard.html
・その上で、このモジュールの「#deffunc ClipB_GetText var t」から始まる
ブロックを以下のように改造する。

#deffunc ClipB_GetText var t t = "" //CF_UNICODETEXT=13 IsClipboardFormatAvailable 13 : if stat == 0 : return ; テキストはない OpenClipboard hwnd ; クリップボード開く if stat { GetClipboardData 13 : ib = stat ; グローバルメモリのハンドル取得 GlobalSize ib : ib(1) = stat ; メモリサイズ GlobalLock ib : ib(2) = stat ; メモリロック dupptr dp , ib(2) , ib(1) , 2 sdim temp,ib(1) : memcpy temp,dp,ib(1),0,0 repeat ib(1)/2 get=wpeek(temp,cnt*2) if get=0x2212 : wpoke temp,cnt*2,0x002D //0x2212を0x002D(半角ハイフン)に置き換え loop t = cnvwtos(temp) ; データを手に入れた! dim temp GlobalUnlock ib ; メモリアンロック CloseClipboard ; クリップボードを閉じる } return
これでどうでしょうか?



大富豪

リンク

2024/4/20(Sat) 21:33:07|NO.101578

沢渡さん
ご対応頂きありがとうございます。
私には高難易度で応用が難しいのですが、
参考並びに勉強させて頂きます。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.101569への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2023(c) All rights reserved.