タグ

文字列に関するyassan0627のブックマーク (5)

  • Perlにおける日本語文字化け対策の私的まとめ - the code to rock

    環境づくり utf8プラグマ openプラグマ binmode関数 標準入出力もopenプラグマにまとめる まとめ 付録 Perlで日語のテキストを処理しているとけっこうな割合で文字化けにハマる。 近いことについては以前ここでみっちり書いたが、 note103.hateblo.jp どうもその後、自分はbinmode関数やopen関数、およびutf8やopenプラグマについて理解が怪しいな、と思ったのでいろいろ調べつつ現時点での認識をまとめてみる。 環境づくり まずはサンプルケース的に、文字化けしがちな状況を作る。 素材データとして、以下の内容をエンコーディングUTF-8のテキストファイルにsource.txtという名前で保存。 りんご hello 犬 1234 ネコ 次に、そのデータをopen関数で読み込み、split関数で切り刻んで標準出力および書き込み用ファイルresult.txt

    Perlにおける日本語文字化け対策の私的まとめ - the code to rock
    yassan0627
    yassan0627 2016/09/26
    良いまとめだなぁ。
  • マルチバイト文字列とワイド文字列 - mkubara.com

    概要 VisualStudio2005になって、今まで書いていた文字列処理関係のコードに対してコンパイルエラーや警告が表示されるようになった方も多いと思います。VisualStudio2005では使用する文字コードが変更となり、従来のマルチバイト文字列(日ではShift-JIS)から、世界標準のワイド文字列(Unicode, UTF-16)へ移ったためです。 このように文字コードはプログラムにおいて重要な位置を占めるものですが、その実態や移行の手法は意外と情報の少ないものでした。今回はこの辺りを記述します。 マルチバイト文字列とワイド文字列 char型とwchar_t型 日Windows上で現在我々の利用する文字コードであるShift-JISは、主に英字を1バイト、日語文字を2バイトで表現するため、マルチバイト文字列と呼ばれます。マルチバイト文字列は1文字が何バイトかを文字ごとに計

  • TCHARとかLPCTSTR、LPTSTRって何???(UsefullCode.net)

    UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. Windowsプログラミングからは切っても切り離せないのが、TCHARと、LPCTSTR、LPTSTRなどのTCHAR系列の型。結論から書くとこれはソースコードをユニコードと非ユニコード両対応にするための型だ(何のことだかサッパリ分からないって?こういうプログラミングの授業じゃ習わない意味不明な拡張が多いからWindowsプログラミングはややこしいんですよね)。 何も考えずに ・TCHAR = char ・LPCTSTR = const char* ・LPTSTR = char*

    yassan0627
    yassan0627 2014/07/18
    マルチバイトの話
  • 紛らわしいぞ!LPCTSTR、LPTSTR、LPSTR、LPCSTRは全部意味が違う!(UsefullCode.net)

    UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. TCHAR系の型というのは初めての人にとっては非常に理解しにくい。理解できれば使えるようになるのだが、そうなっても実装に間違えることが多々ある。その理由がこれ。LPCTSTR、LPTSTR、LPSTR、LPCSTR、LPWSTR、LPCWSTRの6つが全て意味が違うということ。ぱっと見ではほとんど同じだがよく見ると「C」が付いていたり、「T」が1つ多かったりと微妙にスペルが異なっている。 これがどう違うのかと言うと... LPSTR = char* LPCSTR = const c

    yassan0627
    yassan0627 2014/07/18
    マルチバイトの話
  • (VC++)Windows環境でのcharの文字コード(マルチバイトとユニコード)で混乱 | old_3流プログラマのメモ書き

    Visual Studio 2008 では(VS 2005でも同じ) MFC の関数や、Win32API 関数で引数に文字列を渡すとき _T("文字列") と書かないといけないようです。 たしか、Visual C++ 6.0 のときはいらなかったよなーと思ってたので、ちょっと調べてみました。 ちなみに、_T("")をつけないと下記のようなコンパイルエラーとなったりします。 エラー1error C2664: 'ShellExecuteW' : 2 番目の引数を 'const char [5]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 詳しくは_T("")マクロだのL""マクロだのLPCTSTRだのの世界一詳しい解説で説明されてます。 要は、Visual Studio 2005 から文字列がマルチバイト(MBCS)からユニコード(wchar_t)に変わった

    (VC++)Windows環境でのcharの文字コード(マルチバイトとユニコード)で混乱 | old_3流プログラマのメモ書き
    yassan0627
    yassan0627 2014/07/18
    マルチバイトの話
  • 1