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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0718
ユーヤン大文字と小文字の変換2解決


ユーヤン

リンク

2021/7/18(Sun) 17:39:47|NO.93255

ネットからサンプルを見つけ、試してみましたが、文字化けしてしまいます。
どうすればいいのでしょうか?

#include "user32.as" #include "hsp3utf.as" font "meiryo",16 mes "大元の文字列\t: AbCdeFGhIjk\n" ; 大文字変換 (変換された文字列がそのまま同じ変数に返るので注意 data1 ="AbCdeFGhIjk" CharUpperW varptr(data1) data1=cnvwtos(data1) mes "CharUpper関数\t: "+data1 ; 小文字変換 data2 ="AbCdeFGhIjk" CharLowerW varptr(data2) data2=cnvwtos(data2) mes "CharLower関数\t: "+data2 ; 小文字変換 [HSP標準対応の関数] data3 ="AbCdeFGhIjk" data3=cnvwtos(data3) mes "HSP getpath関数\t: "+getpath(data3, 16)



この記事に返信する


沢渡

リンク

2021/7/18(Sun) 19:16:22|NO.93258

hsp3utfの標準の文字コードはUTF-8ですが、
Unicodeに対応したWinAPIはUTF-16が対象なので、
呼び出す前にUTF-8をUTF-16に変換し、
呼び出した後はUTF-16をUTF-8に変換する必要があります。

#include "user32.as" #include "hsp3utf.as" font "meiryo",16 mes "大元の文字列\t: AbCdeFGhIjk\n" ; 大文字変換 (変換された文字列がそのまま同じ変数に返るので注意 data1 ="AbCdeFGhIjk" sdim buf,strlen(data1)*2+2 : cnvstow buf,data1 //UTF-16用のバッファを確保した上で、UTF-8→UTF-16変換 CharUpperW varptr(buf) data1=cnvwtos(buf) //UTF-16→UTF-8変換 mes "CharUpper関数\t: "+data1 ; 小文字変換 data2 ="AbCdeFGhIjk" sdim buf,strlen(data2)*2+2 : cnvstow buf,data2 CharLowerW varptr(buf) data2=cnvwtos(buf) mes "CharLower関数\t: "+data2 ; 小文字変換 [HSP標準対応の関数] data3 ="AbCdeFGhIjk" // data3=cnvwtos(data3) //HSP標準関数を使う場合はUTF-8・UTF-16の変換は必要なし mes "HSP getpath関数\t: "+getpath(data3, 16)



ユーヤン

リンク

2021/7/20(Tue) 19:10:45|NO.93261

getpathでうっかりcnvwtosを呼び出すのうっかりやってしまいました…。
cnvstowを呼び出す必要があるんですね…。
沢渡さん、ありがとうございます…。



記事削除

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

NO.93255への返信

マスコット

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

名前

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

削除用パスワード

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

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

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