簡體   English   中英

在 Mule 的數據編織中處理 Unicode 字符

[英]Handling Unicode character in Mule's dataweave

["

當您使用 JSON 到 XML 或 XML 到 JSON 進行轉換時,請設置Content-Type 'application/json; charset=UTF-8' Content-Type 'application/json; charset=UTF-8'

之前有一個相關的問題: How to get more information about dataweave exception in muleosft

據此:您應該轉義特殊的“控制 unicode 字符”。

您的 JSON 中應該有\n而不是換行符。

另請參閱: 如何處理 JSON 中的換行符?

詳見 JSON 標准; ECMA-404

在第 9 頁的文檔中,在“字符串”一章中,您可以看到 unicode 控制字符應如何在 JSON 中表示的詳細說明。

JSON 字符串不能包含換行符。 您的 JSON 數據格式無效,導致異常。

來自 ECMA - 404 的 JSON 字符串的正式描述

據此:您必須確保 unicode 控制字符在您的 JSON 字符串中正確轉義。

在 datawave 中,將操作as :string

在你的情況下:

"userComment": "CA*2249*0*1763335*54133300896010155 as :string

如果您在將 JSON 轉換為 XML 時遇到無效的空白字符,那么首先我們需要找到它反映的位置; 之后,我們可以replace /{unicode value}/ with ""

我們可以使用 Java 代碼從 Unicode 中刪除不可打印的字符。

package org.mycompany.utils;

public class whiteSpace {
    public static String myInvalidChar(String text) { 
        /* strips off all non-ASCII characters */
        //text = text.replaceAll("[^\\x00-\\x7F]", "");
        /* erases all the ASCII control characters */ 
        //text = text.replaceAll("[\\p{Cntrl}&&[^\r\n\t]]", "");
        /* removes non-printable characters from Unicode */ 
        //text = text.replaceAll("\\p{C}", "");
        //return text.trim();
    }
}

無論您遇到哪種錯誤,您都可以取消注釋並使用代碼導入到 dataweave 並在字段級別使用該方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM