英語OSで日本語がハードコーディングされたソースをコンパイルすると警告C4566が発生した。このままコンパイルされたものだたと日本語の比較の処理など正しく動作しないことが発覚。既知の問題かもしれないが自分がはまったのでメモとして記述。 Error Message character represented by universal-character-name 'char' cannot be represented in the current code page (page) 以下の対処方法を行うことで警告を回避できる。そして日本語の比較の処理も正常に動作することがわかった。 対処方法 1.英語OSにマルチランゲージパックの日本語パックをインストールする Windows2003 Serverの場合は このサイト からマルチランゲージパックをダウンロードできる。 2.コントロールパネル-地域と言語のオプション で開く画面の「詳細設定」タブで「Unicode対応でないプログラムの言語」を日本語にします。 上記のことをやると日本語が英語OSでも表示できるようになる。
ゆーすけべーさんの日記でYouTubnのMP4をダウンロードするPerlのスクリプトを公開している。 それをC#で書いてみた。いまさらって感じですが・・・。 --------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using System.Net; using System.IO; using System.Web; namespace GetYouTubeMp4 { class Program { // 引数にMp4をダウンロードしたいYouTubeのURLを指定して実行する static void Main(string[] args) { try { WebClient webClient = new WebClient(); Stream stream = webClient.OpenRead(args[0].ToString()); StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("Shift_JIS")); Regex regex = new Regex("video_id=(.+?)&.*?&t=(.+?)&"); Match match = regex.Match(streamReader.ReadToEnd()); if (match.Success) { //生成したYouTubeのMp4のパスからYouTubeの動画のID名で保存する
コメント