Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để mã hóa các ký tự từ Oracle sang XML?

Tôi đã tìm thấy một danh sách thú vị trong Thông số Xml :Theo Danh sách đó, không khuyến khích sử dụng Ký tự # 26 (Hex: # x1A ).

Xem phạm vi đầy đủ .

Mã này thay thế tất cả Xml Utf8 không hợp lệ từ một Chuỗi:

public String stripNonValidXMLCharacters(String in) {
    StringBuffer out = new StringBuffer(); // Used to hold the output.
    char current; // Used to reference the current character.

    if (in == null || ("".equals(in))) return ""; // vacancy test.
    for (int i = 0; i < in.length(); i++) {
        current = in.charAt(i);
        if ((current == 0x9) ||
            (current == 0xA) ||
            (current == 0xD) ||
            ((current >= 0x20) && (current <= 0xD7FF)) ||
            ((current >= 0xE000) && (current <= 0xFFFD)) ||
            ((current >= 0x10000) && (current <= 0x10FFFF)))
            out.append(current);
    }
    return out.toString();
}    

nó được lấy từ Ký tự XML không hợp lệ:khi hợp lệ UTF8 không có nghĩa là XML hợp lệ

Nhưng với điều đó, tôi vẫn gặp vấn đề về khả năng tương thích UTF-8:

org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence

Sau khi đọc XML - trả về XML dưới dạng UTF-8 từ một servlet Tôi vừa thử xem điều gì sẽ xảy ra nếu tôi đặt Loại nội dung như thế này:

response.setContentType("text/xml;charset=utf-8");

Và nó đã hoạt động ....



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đọc và nhập tệp CSV trong Oracle PL / SQL một cách hiệu quả

  2. Oracle Plus (+) tham gia chuyển đổi ANSI

  3. Nhận danh sách các số ở giữa hai cột bằng khóa

  4. Regex101 so với Oracle Regex

  5. Làm thế nào để sử dụng bảng tạm thời toàn cục trong thủ tục Oracle?