C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.85618 の関連記事表示

<< 0 >>
■85618  Re[4]: 間違いを教えてください。
□投稿者/ 魔界の仮面弁士 -(2017/11/10(Fri) 13:29:40)
    No85617 (Azulean さん) に返信
    > BASE64 を使うのも選択肢になるかもしれません。(= が大丈夫かは不安ですが)

    BASE64 の = が現われるのはパディング部だけなので、
    パディングが不要な実装、たとえば base64url が向いているかもしれません。
    https://ja.wikipedia.org/wiki/Base64


    // 保存したいバイナリ
    byte[] inBinary = { 0x96, 0xe9, 0x8d, 0xb3, 0x8a, 0xdb };

    // ini ファイルで保存可能な base64url 文字列に変換
    string iniString = inBinary.ToIniString();

    // 元のバイナリに復元
    byte[] outBinary = iniString.ToIniBinary();
     



    static class Base64Extensions
    {
     public static string ToIniString(this byte[] bin)
     {
      return Convert.ToBase64String(bin).TrimEnd('=')
       .Replace('/', '_').Replace('+', '-');
     }
     
     public static byte[] ToIniBinary(this string str)
     {
      int p = 4 - (str.Length % 4);
      string s = str;
      if (p != 4) { s += new string('=', p); }
      s = s.Replace('_', '/').Replace('-', '+');
      return Convert.FromBase64String(s);
     }
    }

    ini ファイルなら、+ → _ や / → - の置き換えは無くても大丈夫かも。
記事No.85599 のレス /過去ログ146より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -