簡體   English   中英

比較看起來相同但不同的本地化字符串的更好方法是什么

[英]What is a better way to compare localized strings that look identical but not

我有機會使用不同的語言環境,並且最近遇到了字符串驗證問題。 在很多情況下,我從翻譯團隊獲得的字符串與我們從網站收到的字符串有些不同,盡管它們看起來相同。

例如:

import org.apache.commons.codec.binary.StringUtils;

    @Test
    public void test() {
        String actual = "pouze v angličtině.";
        String expected = "pouze v angličtině.";

        byte[] bytesactual = StringUtils.getBytesUtf8(actual);
        byte[] bytesexpected = StringUtils.getBytesUtf8(expected);

        System.out.println(Arrays.toString(bytesactual));
        System.out.println(Arrays.toString(bytesexpected));

        Assert.assertEquals(bytesactual, bytesexpected);        
    }

測試失敗,結果如下:

[112, 111, 117, 122, 101, 32, 118, -62, -96, 97, 110, 103, 108, 105, -60, -115, 116, 105, 110, -60, -101, 46]
[112, 111, 117, 122, 101, 32, 118, 32, 97, 110, 103, 108, 105, -60, -115, 116, 105, 110, -60, -101, 46]

測試永遠不會通過,因為“v”后面有幾個不同的字符。 前端人員讀取的 json 與我在測試中讀取的相同,但不知何故字符格式錯誤。 目前,我的解決方法是打開 json 並復制/粘貼我從網站獲得的內容並替換它,但由於這種情況發生了很多次,所以我正在尋找一個程序解決方案來解決這個問題,而不是替換 json 字符串。 有任何想法嗎? 謝謝你。

我想說這很可能是由於字符編碼,我會仔細檢查前端的字符編碼是否符合預期,如果您提前 go 以編程方式執行此操作,那么您可以強制執行您自己的編碼規則集。

作為一般規則,0 - 127 (ascii) 范圍之外的任何內容都由希望在 Ascii 標准表之外添加字符的字符集引入。

暫無
暫無

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

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