我的应用程序正在以这种形式获得德语变音符号:
public static void setPriority(List<Performer> listperformer)
{
Scanner localsc = new Scanner(System.in);
if(listperformer.isEmpty() == true)
{
System.out.println("- empty -");
return;
}
else
{
System.out.println("ID:");
int id = localsc.nextInt();
if(listperformer.size() < id || id < 0)
{
System.out.println("Invalid input!");
return;
}
else
{
double priority = 1.0;
try{
System.out.println("Priority:");
priority = localsc.nextDouble();
listperformer.get(id).setPriority(priority);
}catch(InputMismatchException e)
{
System.err.println("Invalid input!");
}
}
}
此格式与我在互联网上找到的格式略有不同(请参阅here)。
例如,Ü应该是\U+00c4 (this is Ä)
\U+00d6 (this is Ö)
\U+00dc (this is Ü)
而不是\u00DC
。我可以使用\U+00dc
对它们进行解码,但我认为这不应该是首选方式:
replace()
这样可行,但问题是:有没有办法在不调用value = '\U+00dc'
print value.replace('\U+', '\u').decode('unicode-escape').encode('utf-8')
的情况下执行此操作? (replace()
实际上是一种解决方法)