如何在不使用特殊字符的情况下将UTF-8转换为ANSI?

问题描述 投票:0回答:1

我们完成了一些代码,仅当文件包含特殊字符时,该代码才起作用。但是,我们还需要更改编码格式ANSI,同时也不要包含特殊字符。例如:如果文件包含hello€,则它将生成ANSI编码。如果文件包含Hello,则它将生成UTF-8格式。请进一步建议。

package com.damco.b2b;

import oracle.tip.b2b.callout.Callout;
import oracle.tip.b2b.callout.CalloutContext;
import oracle.tip.b2b.callout.CalloutMessage;
import oracle.tip.b2b.callout.exception.CalloutDomainException;
import oracle.tip.b2b.callout.exception.CalloutSystemException;


import java.util.List;

public class UTFToANSI implements Callout {




    @Override
    public void execute(CalloutContext calloutContext, List input, List output) throws Exception, CalloutDomainException, CalloutSystemException {
            System.out.println("com.damco.b2b.UTFToANSI starts ***********");

        try{
            CalloutMessage cmIn = (CalloutMessage) input.get(0);

            String text = cmIn.getBodyAsString("UTF-8");

            byte[] newStr = text.getBytes("ISO-8859-1");

            System.out.println("com.damco.b2b.UTFToANSI ends ***********");

            CalloutMessage cmOut = new CalloutMessage(newStr);

            output.add(cmOut);

        }catch(Exception e){
            System.out.println("com.damco.b2b.UTFToANSI ex ***********\n"+e.getMessage());
            throw new CalloutDomainException(e);
        }
    }

}
java encoding utf-8 soa ansi
1个回答
0
投票

尝试像这样更改代码

 String text = cmIn.getBodyAsString(StandardCharsetes."UTF-8");

    byte[] newStr = text.getBytes(StandardCharsetes."ISO-8859-1");
© www.soinside.com 2019 - 2024. All rights reserved.