Java: как удалить символ Â перед знаком £

Всякий раз, когда я печатаю или пишу символ £ или даже делаю что-нибудь с ним, он всегда отображается как £ без причины для того, чтобы там был. Я попытался написать символ в юникоде, но это все равно привело к этой странной комбинации. Есть ли способ удалить это или предотвратить это?

public class GenericClass
{
    public static void main(String[] args)
    {
        System.out.println("£");
    }
}

Это все, что печатается:

Java: как удалить символ Â перед знаком £

Где вы это распечатываете? Возможно, экран / инструмент и т. д. Не могут правильно обрабатывать Unicode.

Bohemian 09.08.2018 20:41

Просто в командной строке, это не проблема, потому что она не будет работать, если я использую System.out.println ().

Thomas Rowe 09.08.2018 20:43
public class GenericClass { public static void main(String[] args) { System.out.println("£".substring(1)); } } Что это дает вам?
Dr3amer17 09.08.2018 20:49

Это работает хорошо, плохо исследуйте подстроку и посмотрите, как я могу применить это там, где мне это нужно. Спасибо

Thomas Rowe 09.08.2018 20:56

@ Dr3amer17, это один из тех случаев, когда я хочу, чтобы StackOverflow разрешил голосование против комментариев. То, что вы предлагаете, просто неверно. Тот факт, что он вообще работает, означает, что £ не кодируется должным образом при компиляции. И ваше предложение с треском проваливается для символов Unicode, которые закодированы в UTF-8 таким образом, что значение 2-го байта не соответствует значению кодируемой точки. Решение настоящий состоит в том, чтобы исправить кодировку, а не обойти ее.

Remy Lebeau 13.08.2018 01:54

@RemyLebeau Я бы (и сделал) пометил как "Что-то еще"> "Опасно вводит в заблуждение"

GDF 14.08.2018 14:19
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
6
1 158
1

Ответы 1

Ваш исходный файл, вероятно, UTF-8 и поэтому обрабатывает £ как два 8-битных символа: Â £

Для переносимости вы должны использовать экранированные последовательности Unicode в строковых литералах, подобных этому.

public class GenericClass
{
    public static void main(String[] args)
    {
        System.out.println("\u00A3");
    }
}

Другие вопросы по теме