- 締切済み
ソースの文字コードについて
ソースの文字コードについて今まで無頓着でした。 しかし、ソースの文字コードがUTF8で統一されている プロジェクトを見かけたりして、本当は気にしなければ ならないのでは?と思いました。 (1)ソースの文字コードは統一すべきですか? (2)ソースの文字コードはUTF8が最適解ですか?(2008/3現在) (3)この話題を扱っている書籍はありますか? 少し調べたところによると、マジックストリング (文字列定数?)で問題が発生するようでした。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- SAYKA
- ベストアンサー率34% (944/2776)
>UTF8でもBOMありとBOMなしが >どちらがよい http://www.google.co.jp/search?q=UTF-8%20BOM%E3%81%AE%E6%9C%89%E7%84%A1%20%E4%B8%80%E8%88%AC%E7%9A%84&hl=ja&lr=lang_ja どのような処理系・開発環境へ投げるのか前提が無いと成り立たない話だね。 環境内でBOM有りを処理するものがどれくらい有るのかを調べたら、どちらが良いのかわかるんじゃないかな。 でもこの回答と、状況を考えたら、どっちが良いかすぐ判るかもしれないけど。
- sakusaker7
- ベストアンサー率62% (800/1280)
>> ソースって具体的に何のソースですか? >言語を答えればよいのでしょうか >言語はC++です。 なるほど。 いや、HTMLとかスクリプティング言語のソースかもと思ったので確認したかったのです。 で、それがわかったところでわたしの意見を書いておきますが、 基本的にはソースコード中にはASCII(まあUTF-8でも?)以外のメッセージ文字列の類を 直接書くのではなくて、メッセージカタログとかリソースに 追い出しておくべきだと考えています。 ですので、 (1)ソースの文字コードは統一すべきですか? (2)ソースの文字コードはUTF8が最適解ですか?(2008/3現在) 1)については(文字列リソースではないという意味での)「ソースコード」 では複数のエンコーディングはすべきではないと考えます。 2)についてはどのようなシステムで使うかにもよりますので なんともいえません。 メッセージ等の文字列ではなく、コメントに使うものということであれば UTF-8ですかねえ。 自分が関係するところでは日本語でコメントをかけないのでどうでもいいっちゃいいんですが。 > 文字列はマジックストリングとでも呼ぶのではないかと、 > 自分が勝手に呼んでただけですが、Googleで検索してみると > 案外沢山(マジックストリング の検索結果 約 222,000 件) > ヒットするので、一般的に使用しても問題ないのでは > と思いこの単語を使いました。 "magic string" (クォートしないと別々のものとして検索するので×です) で検索すると、英語圏ではマジックナンバーの文字列版としての意味で このような言い回しはほとんどしていないようです。 日本ローカルだからダメとは云いませんが、和製英語の類は避けた方がいいんじゃないかと思ったりします。
お礼
ご回答ありがとうございます。 参考にさせていただきます。
- notnot
- ベストアンサー率47% (4901/10362)
>(1)ソースの文字コードは統一すべきですか? 一つのシステムを構成するすべてのソースコードでは統一すべきです。 システムが別ならそれぞれのシステムに応じたコードでシステム内を統一する。 >(2)ソースの文字コードはUTF8が最適解ですか?(2008/3現在) LinuxだとUTF8がいいでしょうね。WindowsならShift_JISもいいと思います(ただしLinuxでは多くの場合Shift_JISはサポートされて無いことに留意)。 どちらもプログラミング言語やツール類が対応しているかどうかは要確認。 >(3)この話題を扱っている書籍はありますか? 「この話題」とは?「文字コードを統一すべきか」という話題なら自明なので扱っている本はないと思います。 文字コード一般については、本格的な本では、 http://www.amazon.co.jp/dp/4873111080/ あと初心者向けの内容の薄い本なら、amazonで「文字コード」で検索するといくらでもあります。
補足
ご回答ありがとうございます。 > 「文字コードを統一すべきか」という話題なら自明なので ある程度常識に近いものなんですね 知りませんでした。 (2)についてですが、UTF8でもBOMありとBOMなしが あります。どちらがよいというのはあるのでしょうか? 全体的にですが、 後付けで申し訳ないのですが、といった回答も聞きたいです。 (A)文字化けについては、エディタが、たくさんのエンコードに 対応していれば問題はないのかなと思ったりします。 (そんな都合のよいエディタがないのかな・・) 合っていますでしょうか? (B)UTF8にしなかったがために、処理系付属の標準ライブラリの 文字列処理関数で期待通りの動作をしないことはあるのか? 例えばVC++, BCC, GCC
- sakusaker7
- ベストアンサー率62% (800/1280)
ソースって具体的に何のソースですか? それによっても変わってくると思うのですが。 でもまあ不必要に複数のエンコーディングを混ぜることはしない方がよいでしょうね。 > 少し調べたところによると、マジックストリング > (文字列定数?)で問題が発生するようでした。 “マジックストリング”って多分はじめて目にしたような気がするのですが、 magic number (マジックナンバー)みたいなものですか?
補足
> ソースって具体的に何のソースですか? 言語を答えればよいのでしょうか 言語はC++です。 > “マジックストリング”って多分はじめて目にしたような気が > するのですが、magic number (マジックナンバー)みたいな > ものですか? マジックナンバーがあるなら、ソースに直接書いているような 文字列はマジックストリングとでも呼ぶのではないかと、 自分が勝手に呼んでただけですが、Googleで検索してみると 案外沢山(マジックストリング の検索結果 約 222,000 件) ヒットするので、一般的に使用しても問題ないのでは と思いこの単語を使いました。
- SAYKA
- ベストアンサー率34% (944/2776)
1 すべき 2 最適解 3 書籍は・・・判らないや・・・ http://www.google.co.jp/search?hl=ja&lr=lang_ja&q=%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E7%B5%B1%E4%B8%80%20%E9%96%8B%E7%99%BA ソースを開いたら文字化けするとのしないのが混在。 そんなの嫌だと思わない? 10・20ならまだしももっと膨大なソースとなると・・・・・
補足
ご回答ありがとうございます。 > ソースを開いたら文字化けするとのしないのが混在。 > そんなの嫌だと思わない? とっても嫌です・・ (2)についてですが、UTF8でもBOMありとBOMなしが あります。どちらがよいというのはあるのでしょうか?
お礼
ご回答ありがとうございます。 私の読解力がないからか、どちらがよいかよく分からないのですが、 「BOMなし」がよいってことかな・・