На сервере Unix: не удается разобрать символ валюты (£,€) из json в .CSV-файл

На сервере Unix: не удается разобрать символ валюты (£,€) из json в .CSV-файл

17.01.2020 12:49:16 Просмотров 18 Источник

Ниже приведен мой java-код

public Test parseTest(String test) {
            Testresult = null;
            try {
                result = gson.fromJson(test, Test.class);
                if (CAT.isDebugEnabled()) {
                    CAT.debug(result);
                }
            } catch (JsonSyntaxException e) {
                CAT.warn(e.getMessage() + "\nCan't parse\n" + test);
            }
            return result;
        }

Для разбора Json я использую ниже jar

<dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.2.2</version>
            </dependency>

Ниже мой JSON:

Test": [
      {
        "A": "X;DOS533",
        "B": "FCA BANK SPAEUR1.5BN21MAR2019",
        "C": null,
        "D": "AA BB EUR1.5BN",
        "E": "€1.5BN Test LN BNK €100M 12M",
        "Ccy": "EUR",
        "TypeCode": "TML  "
      }

А ниже-строка из .csv-файл, созданный в unix box.

4243842|Test:ABC|Active||6||FFTIAIT||Internal|X;DOS5KT|FCA BANK SPAEUR1.5BN21MAR2019|?1.5BN Test LN NWM ?100M 12M|TML|

Здесь знак получить заменить ?(вопросительный знак).

Та же проблема, с которой я сталкиваюсь при конвертации фунта ( £ ).CSV для .файл bcp.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/59784866/on-unix-server-unable-to-parse-currency-symbol%c2%a3-%e2%82%ac-from-json-to-csv-file#comment105712918_59784866
Похоже на проблему с кодовой страницей
https://stackoverflow.com/questions/59784866/on-unix-server-unable-to-parse-currency-symbol%c2%a3-%e2%82%ac-from-json-to-csv-file#comment105712946_59784866
при локальном выполнении программы на windows она работает нормально.. но не на сервере
https://stackoverflow.com/questions/59784866/on-unix-server-unable-to-parse-currency-symbol%c2%a3-%e2%82%ac-from-json-to-csv-file#comment105712981_59784866
Windows использует CP1250. Linux обычно UTF-8 или ISO-8859. JAVA внутренний UTF-8
https://stackoverflow.com/questions/59784866/on-unix-server-unable-to-parse-currency-symbol%c2%a3-%e2%82%ac-from-json-to-csv-file#comment105713099_59784866
Я не вижу никакого кода Java в вашем вопросе. Как это связано с Java?
https://stackoverflow.com/questions/59784866/on-unix-server-unable-to-parse-currency-symbol%c2%a3-%e2%82%ac-from-json-to-csv-file#comment105713588_59784866
уберет тег java.
https://stackoverflow.com/questions/59784866/on-unix-server-unable-to-parse-currency-symbol%c2%a3-%e2%82%ac-from-json-to-csv-file#comment105715409_59784866
Вам нужно будет показать свой код; без этого никто не сможет помочь.
https://stackoverflow.com/questions/59784866/on-unix-server-unable-to-parse-currency-symbol%c2%a3-%e2%82%ac-from-json-to-csv-file#comment106040382_59784866
@TobySpeight я добавил код java

Ответы - На сервере Unix: не удается разобрать символ валюты (£,€) из json в .CSV-файл / On Unix server: unable to parse currency symbol(£,€) from json to .csv file

Является ответом!
Nidhi257

30.01.2020 08:25:59

Я попробовал передавать потоки байтов вместо строки, и это работает.

Ниже приведен обновленный код

public Test parseTest(String test) {
            Testresult = null;
            try {
               result = gson.fromJson(new InputStreamReader(new ByteArrayInputStream(test.getBytes("UTF-8"))), Test.class);
                if (CAT.isDebugEnabled()) {
                    CAT.debug(result);
                }
            } catch (JsonSyntaxException e) {
                CAT.warn(e.getMessage() + "\nCan't parse\n" + test);
            }catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
            return result;
        }
Закрыть X