您好,
根據您的情境,目前看起來問題的根本原因是 Sanitization Component 將 Binary Content 當成 Text 處理,因此遇到 Null Byte(\x00)時會導致 Processing Failure。這種情況下,通常不建議直接進行 String Conversion,而是先將 Binary Payload 正規化成 Text-safe Representation,再交給 PII Scrubbing Stage 處理。
在您提到的兩種方式中,通常較建議使用 Base64 Encoding,因為它可以完整保留原始 Binary Content,同時轉換成大多數 Sanitization Pipeline 都能安全處理的文字格式。Hex Encoding 同樣是 Lossless,但會使資料大小增加一倍,對大型 Payload 可能造成較高的 Processing Overhead。
無論採用哪種 Encoding,都建議在 Pipeline 中記錄 Encoding Format,並在 Decode 前先驗證 Payload,避免後續處理過程發生資料損毀。
另外,建議在 Sanitization 前後進行 Integrity Validation,例如比較 Decode 後 Payload 的 Checksum 或 Hash,確認 Encode/Decode 過程沒有改變原始 Binary Data。如果 Sanitization 只需要檢查 Metadata 或 Structured Fields,也可以考慮直接排除 Binary Columns,不讓它們進入 Text-based PII Processing。
最佳實務是將 Normalization 設計成獨立的 Preprocessing Stage,並確保整個 Transformation Process 是完全可逆的。這樣即可安全處理包含 Null Byte 的 Binary Content,同時避免修改原始 Payload 或造成 Data Corruption。
希望以上資訊能對您有所幫助。如果您認為這個回答有幫助,請點擊 「Accept Answer」,讓我知道這個回答已經解決您的疑問。
Jason