Re: Android:UTF8からSJISへの変換について ( No.1 ) |
- 名前:BEUI 日時:2019/06/09 13:12
> (出力した値をSJISで表示しても見えなかったり
> SJISで文字が表示出来ても同じ文字が繰り返し表示されたりします)
これはDrawString等で表示しようとしているのでしょうか?Android版の文字描画関数(等)はUTF8文字列を
渡さないと正常に処理できません。
なおConvertStringCharCodeFormat(DX_CHARCODEFORMAT_UTF8, "テスト", DX_CHARCODEFORMAT_SHIFTJIS, SJISString);
を試しましたが、正しく 131 101 131 88 131 103 0 に変換できています。(符号を除いて)Windowsと同じ。
|
Re: Android:UTF8からSJISへの変換について ( No.2 ) |
- 名前:和彦(解決済み) 日時:2019/06/09 16:27
BEUI様
回答ありがとうございます、ConvertStringCharCodeFormatは正常に変換できているとのこと
承知しました。
強制終了はConvertStringCharCodeFormatに初期化していない文字列のポインタを
指定したことが原因のようでした。
当環境にて以下の通り、文字列を初期化するようソースコードを修正して再検証することで
ConvertStringCharCodeFormatが正常に動作したことを確認しております。
変更前) char * SJISString;
変更後) char SJISString[256] = "";
「Androidアプリ開発の基礎的な情報や注意点など 」に記載の
「4.Androidアプリではグローバル変数が 0 で初期化されることを前提としてはいけないこと」
の通り、今後は変数が初期化されているか確認して検証したいと思います。
対応ありがとうございました、本件はクローズでお願いいたします。
|
Re: Android:UTF8からSJISへの変換について ( No.3 ) |
- 名前:管理人(解決) 日時:2019/06/10 01:10
char SJISString[256] = "";
とされた場合は SJIS の全角文字 127文字分以上の長さの文字列を代入するとメモリの
不正なアクセスとなってしまいますのでご注意ください m(_ _)m
( 配列の要素数 512 で 255文字、1024 で 511文字です )
|
Re: Android:UTF8からSJISへの変換について ( No.4 ) |
- 名前:和彦(解決済み) 日時:2019/06/13 01:29
管理人様
ご指摘ありがとうございます。
127文字分以上の長さの文字列を代入しないよう気をつけます。
|