如何在Java中實(shí)現(xiàn)Unicode編碼的校驗(yàn)

小樊
111
2024-08-30 21:05:20

在Java中,可以使用java.nio.charset包中的Charset類和CharsetEncoder類來(lái)檢查字符串是否符合Unicode編碼

import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;
import java.nio.charset.CodingErrorAction;

public class UnicodeValidation {
    public static void main(String[] args) {
        String input = "Hello, 你好!"; // 示例字符串
        boolean isValidUnicode = isValidUnicode(input);
        
        if (isValidUnicode) {
            System.out.println("字符串符合Unicode編碼");
        } else {
            System.out.println("字符串不符合Unicode編碼");
        }
    }

    private static boolean isValidUnicode(String input) {
        CharsetEncoder encoder = Charset.forName("UTF-8").newEncoder();
        encoder.onMalformedInput(CodingErrorAction.REPORT);
        encoder.onUnmappableCharacter(CodingErrorAction.REPORT);
        
        return encoder.canEncode(input);
    }
}

在這個(gè)示例中,我們創(chuàng)建了一個(gè)名為isValidUnicode的方法,該方法接受一個(gè)字符串作為輸入。然后,我們使用Charset.forName("UTF-8").newEncoder()創(chuàng)建一個(gè)UTF-8編碼器。接下來(lái),我們?cè)O(shè)置編碼器在遇到格式錯(cuò)誤或無(wú)法映射的字符時(shí)的行為:將它們報(bào)告為錯(cuò)誤。最后,我們調(diào)用encoder.canEncode(input)來(lái)檢查輸入字符串是否可以被編碼為UTF-8。如果可以,則返回true,表示字符串符合Unicode編碼;否則返回false。

0