Я делаю несколько запросов Freebase. Иногда результат запроса содержит символы Unicode. Как преобразовать эти символы в строку Java? (например, The_Police_$0028band$0029
→ The_Police_(band)
). Я пробовал:Convert Freebase Unicode codecoints для Java String
new String(arg_in_byte,"UTF-8")
но не работает. Я видел в другом вопросе, что одним из решений является метод replaceAll
, но я думаю, что есть и другой метод, который будет более чистым.
страница Вики Freebase, [ключ маскирование MQL] (http://wiki.freebase.com/wiki/MQL_key_escaping), что Том Моррис связан в своем ответе говорит, что библиотека freebase-python обрабатывает это. Это код Python, очевидно, но их ключевая кодировка находится в [mqlkey.py] (https://code.google.com/p/freebase-python/source/browse/trunk/freebase/api/mqlkey.py) и должна это трудно перевести. Это также указывает на то, что у Python не было стандартной функции библиотеки, чтобы сделать это, поэтому не удивительно, что Java тоже не является. –
OpenRefine также имеет реализацию Java, но вы, вероятно, потратили бы больше времени на отслеживание и адаптацию кода, чем просто его реализацию, это настолько тривиально. https://github.com/OpenRefine/OpenRefine/blob/master/extensions/freebase/src/com/google/refine/freebase/expr/MqlKeyUnquote.java –