sql >> データベース >  >> RDS >> PostgreSQL

Javaで同等のencode(、'escape')PostgreSQLとは何ですか?

    文字列の配列が必要ですか、それともasdad\000asdasd\000が必要ですか? ?バイト配列または実際の文字列を使用していますか?

    文字列からバイト配列(文字列を使用する場合)

    String str = "\x61736461640061736461736400"
    str = str.substring(2); //get rid of \x
    byte [] bytes = new byte[str.length()/2];
    for(int i = 0; i < result.length; i++) {
      String numberStr = str.substring(i*2,i*2+2);
      int numberInt = Integer.parseInt(numberStr);
      bytes[i] = (byte) numberInt;
    }
    

    バイト配列から文字列ArrayListへ

    ArrayList<String> result = new ArrayList<String>();
    int startIndex = 0;
    for(int i = 0; i < bytes.length; i++) {
      if(bytes[i] == 0) {
        if(startIndex > i) {
          byte [] stringBytes = new byte[i - startIndex];
          for(int j = startIndex; j < i; j++) {
            stringBytes[j-startIndex] = bytes[j];
          }
          result.add(new String(stringBytes, "US-ASCII"));
        }
        startIndex = i+1;
      }
    }
    

    バイト配列から8進数のエスケープされた文字列

    DecimalFormat formatter = new DecimalFormat("000");
    StringBuilder resultBuilder = new StringBuilder();
    for(byte b : bytes) {
      if(b > 0) {
        char c = (char) b;
        resultBuilder.append(c);
      } else {
        int bInt = b & 0xFF;
        String octal = Integer.toString(bInt, 8);
        int numPadZeroesNeeded = 3 - octal.length();
        resultBuilder.append('\');
        for(int i = 0; i < numPadZeroesNeeded; i++) {
          resultBuilder.append('0');
        }
        resultBuilder.append(octal);
      }
    }
    



    1. JDBCはopenshiftでmysqlデータベースに接続できません

    2. PostgreSQLデータベースからテーブル*または*ビューを削除するにはどうすればよいですか?

    3. SSHからのデータベースのバックアップ/エクスポート

    4. Mysql ...不可能なクエリ?