UTF-8 版 newLISP.dll を Visual C++ で使う(続き)

 newLISP.dll を使った CLR コンソール アプリケーション
 前回は直接起動しましたが、今回は、DOS窓(コンソール)から起動してみました。


 コードページは、932 ですから、日本語コードは Shift-JIS のはず。
 でも、日本語コードが UTF-8 に見えます。
 コードページ 932 の DOS 窓でも UTF-8 は使え、それは、アプリケーション次第ってこと?
 ちにみに、”anni.lsp” は、

(define (get-anniversary-from-wiki day)
  (letn (str (get-url (string "http://ja.wikipedia.org/wiki/"
                              (day 0)
                              "%E6%9C%88"
                              (day 1)
                              "%E6%97%A5"))
         str1 (replace "\n" str ""))
    (when (find "記念日・年中行事</span></h2>(.*)関連項目" str1 0)
      (letn (tmp $1
             pos (find "<h2>" tmp)
             kday (0 pos tmp)
             kparse (xml-parse kday (+ 1 2 4))
             res '())
        (dolist (kp kparse)
          (dolist (k (kp 2))
            (let ((tmp "") (ddpos (ref "dd" k)))
              (dolist (x (ref-all "TEXT" k))
                (when (and ddpos (< ddpos x)) (push "\n    " tmp -1) (setq ddpos nil)) 
                (inc (x -1))
                (push (k x) tmp -1))
              (unless (null? tmp)
                (push tmp res -1)))))
        res))))
(define (jnow)
  (now (- ((now) 9))))
(setq today-ani (get-anniversary-from-wiki (1 2 (jnow))))
(when today-ani
  (dolist (x today-ani)
    (if (starts-with x "\n") (print x) (silent (print (string "\n・" x)))))
  (println))

 こんな感じ。ただし、UTF-8 コードで保存してあります。日本語の Windows では、Shift-JIS が標準ですから、注意して下さい(笑)。
 基本的には、前の blog で紹介した、“newLISPで Wikipedia を参照する...応用編”から、UTF-8 → Shift-JIS変換 を外したものです。
 ちなみに、”anni.lsp” を UTF-8版newLISP で実行すると、


 文字化けします。こちらが当然なのですが、、、
 DOS 窓の不器用さを嘆くべきか? CLR コンソール アプリケーション の器用さを讃えるべきか?

 いずれにせよ、Windows の DOS窓で UTF-8 が使えるのうれしい話です。

 以上、如何でしょうか?

広告

No comments yet

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。