なんとかなるさね

マイコンをネタにブログを始めてみました


スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--   blog-entry-   category: スポンサー広告

go page top

RL78マイコン基板(RL78/G13)|KurumiWriter(改)で書き込んで自作utf8to932コマンドで日本語表示 

2つ前のエントリで改造したKurumiWriterを使った後はコマンドプロンプトのmodeコマンドとmoreコマンドの
組み合わせでRL78/G13と通信(シリアルモニタ)出来るようになっていることに前のエントリで気付いたのですが、
以前のエントリのようにルネサスWebコンパイラでSerial.print()の引数に日本語を書いていた場合には、それが
文字化けして表示されます。この際ですので、文字化けせずに表示されるようにコマンドを1つ自作してみました。

単にUTF-8からSJISへ漢字コードを変換しているだけなのですが、試しに汎用的な漢字コード(文字コード)変換
ツールを幾つか使ってみたところ、今回のようにリアルタイムで1行づつ入力されるデータをリアルタイムで1行
づつ出力することが出来なかったり(入力や出力でバッファリングが行われていてデータが充分に溜まった時点で
まとめて変換される)、COMポートに対して使えなかったり、といった状況でしたので自作することにしました。
(とは言え、エラーチェックを何もしていないところなど、ちょっと後ろめたい気持ちがない訳ではないですが。)

mode COM14 dtr=on > nul & mode COM14 baud=9600 parity=n data=8 stop=2 to=off dtr=off & utf8to932 < \\.\COM14


KurumiWriter V1.00(ソース公開版)の改造に使用したVisual C++ 2010 Express SP1で作成


// utf8to932.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include "windows.h"

#define BUFSIZE 1024

int _tmain(int argc, _TCHAR* argv[])
{
    // for (;;) {} /* プロジェクトのプロパティで“デバッグ”の“アタッチ”を“はい”にしておく */
    CHAR buff[1024BUFSIZE];
    WCHAR wbuff[1024BUFSIZE];

    for (;;)
    {
        buff[0] = '\0';
        wbuff[0] = '\0';
        fgets(buff, sizeof(buff)BUFSIZE, stdin);
        MultiByteToWideChar(CP_UTF8, 0, buff, -1, wbuff, sizeof(wbuff)/*しまった、バイト数でなく配列数だった*/BUFSIZE);
        WideCharToMultiByte(CP_ACP, 0, wbuff, -1, buff, sizeof(buff)BUFSIZE, NULL, NULL);
        fputs(buff, stdout);
    }
    return 0;
}


ビルドしたプログラムは以下の通りです。(ちなみに、バッファオーバーフローはさせないようにして下さい。)

ファイル: utf8to932.7z
ファイル: utf8to932.7z        (2016/09/28更新)

追記 : メモ

参考にさせて頂いたブログ

SJISとUTF8の漢字コード変換 - Minoru Hatada
http://home.a00.itscom.net/hatada/windows/tips/sjis2utf8.html

追記 : メモ

MultiByteToWideChar - MSDN
https://msdn.microsoft.com/ja-jp/library/cc448053.aspx

WideCharToMultiByte - MSDN
https://msdn.microsoft.com/ja-jp/library/cc448089.aspx

追記 : メモ

試させて頂いた記事やブログ

libiconv - 瀬川 博人 - 株式会社システムエージェントジャパン
インストール(Windowsプリコンパイル版)
http://saj.co.jp/techinfo/htmls/other-libiconv-install_windows_precompile.html
ダウンロードファイル
http://ftp.jaist.ac.jp/pub/GNU/libiconv/libiconv-1.9.1.bin.woe32.zip
(http://ftp.jaist.ac.jp/pub/GNU/libiconv/)
http://ftp.jaist.ac.jp/pub/GNU/gettext/gettext-runtime-0.13.1.bin.woe32.zip
(http://ftp.jaist.ac.jp/pub/GNU/gettext/)

@IT > Windows Server Insider > Tech TIPS - アイティメディア株式会社
nkfツールで文字コードを変換する(Windows編)
http://www.atmarkit.co.jp/ait/articles/1301/25/news092.html
ダウンロードファイル
http://www.vector.co.jp/download/file/win95/util/fh526847.html

Windows Script Programming - ウィンドウズスクリプトプログラマ
cmd.exeとchcp.comだけで、文字コード(Unicode、UTF-8、UTF-7、JIS、EUC-JP、SJIS)を変換する!
http://scripting.cocolog-nifty.com/blog/2008/12/cmdexeunicodeut.html
ダウンロードファイル
http://www.vector.co.jp/download/file/winnt/util/fh470470.html

関連記事

2016/09/27   blog-entry-822   category: RL78 /* 16bit,8bit CISC */

go page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。