package org.manalith.ircbot.plugin.symbol; import org.manalith.ircbot.annotation.Option; import org.manalith.ircbot.common.stereotype.BotCommand; import org.manalith.ircbot.plugin.SimplePlugin; import org.springframework.stereotype.Component; @Component public class UnicodePlugin extends SimplePlugin { @Override public String getName() { return "유니코드 변환"; } @BotCommand({ "u", "유니코드" }) public String unicode( @Option(name = "대상 문자", help = "변환할 문자 혹은 코드") String text) { try { if (text.startsWith("\\u") || text.startsWith("U+")) { char ch = (char) Integer.parseInt(text.substring(2), 16); return ch + " - " + Character.getName(ch); } else { char[] chars = text.toCharArray(); StringBuilder sb = new StringBuilder(); for (char ch : chars) { sb.append("U+").append(Integer.toHexString(ch | 0x10000).substring(1)); } if (chars.length == 1) { sb.append(" - ").append(Character.getName(chars[0])); } return sb.toString(); } } catch (NumberFormatException e) { return "잘못된 유니코드 문자열입니다."; } } }