Вы можете проверить, открыт ли Excel. Нет необходимости создавать еще один isntance
If CheckAppOpen("excel.application") Then
'MsgBox "App Loaded"
Set xlApp = GetObject(, "excel.Application")
Else
' MsgBox "App Not Loaded"
Set wrdApp = CreateObject(,"excel.Application")
End If
Если вам нужно написать файл .properties
, вы можете просто добавить строки в объект «Свойства», а затем сохранить его в файл. Он позаботится о преобразовании.
есть инструменты JDK , выполняемые через командную строку следующим образом:
native2ascii -encoding utf8 src.txt output.txt
Пример:
src.txt
بسم الله الرحمن الرحيم
output.txt
\u0628\u0633\u0645 \u0627\u0644\u0644\u0647 \u0627\u0644\u0631\u062d\u0645\u0646 \u0627\u0644\u0631\u062d\u064a\u0645
Если вы хотите использовать его в своем приложении Java, вы можете обернуть эту командную строку:
String pathSrc = "./tmp/src.txt";
String pathOut = "./tmp/output.txt";
String cmdLine = "native2ascii -encoding utf8 " + new File(pathSrc).getAbsolutePath() + " " + new File(pathOut).getAbsolutePath();
Runtime.getRuntime().exec(cmdLine);
System.out.println("THE END");
Затем прочитайте содержимое новый файл.
У меня также была эта проблема. У меня был какой-то португальский текст с некоторыми специальными символами, но эти символы были уже в формате Unicode (например: \u00e3
).
Поэтому я хочу преобразовать S\u00e3o
в São
.
Я сделал это с помощью apache commons StringEscapeUtils . Как сказал @ sorin-sbarnea. Можно загрузить здесь .
Использовать метод unescapeJava
, например:
String text = "S\u00e3o"
text = StringEscapeUtils.unescapeJava(text);
System.out.println("text " + text);
(Существует также метод escapeJava
, но это помещает символы unicode в строку.)
Если кто-то знает решение на чистой Java, сообщите нам.
Просто некоторые основные методы для этого (вдохновленные инструментом native2ascii):
/**
* Encode a String like äöü to \u00e4\u00f6\u00fc
*
* @param text
* @return
*/
public String native2ascii(String text) {
if (text == null)
return text;
StringBuilder sb = new StringBuilder();
for (char ch : text.toCharArray()) {
sb.append(native2ascii(ch));
}
return sb.toString();
}
/**
* Encode a Character like ä to \u00e4
*
* @param ch
* @return
*/
public String native2ascii(char ch) {
if (ch > '\u007f') {
StringBuilder sb = new StringBuilder();
// write \udddd
sb.append("\\u");
StringBuffer hex = new StringBuffer(Integer.toHexString(ch));
hex.reverse();
int length = 4 - hex.length();
for (int j = 0; j < length; j++) {
hex.append('0');
}
for (int j = 0; j < 4; j++) {
sb.append(hex.charAt(3 - j));
}
return sb.toString();
} else {
return Character.toString(ch);
}
}
Сообщество Apache StringEscapeUtils.escapeEcmaScript(String)
возвращает строку с символами unicode, экранированными с использованием нотации \u
.
"Art of Beer
Есть инструмент командной строки, который поставляется с java, называемым native2ascii . Это преобразует файлы Unicode в файлы с экранированным ASCII. Я обнаружил, что это необходимый шаг для генерации файлов .properties для локализации.
Вы можете использовать escapeJavaStyleString
из org.apache.commons.lang.StringEscapeUtils
.
Возможно, вы могли бы взломать, если из этого кода JavaScript:
/* convert
ISO-8859-1
(первая страница Юникода), а также сохраняются в этой кодировке. Вот почему он нуждается в экранах\uXXXX
и создает их при сохранении. Хотя, так как Java version 1.6 Properties позволяет считывать данные с объекта Reader, чтобы вы могли создать собственный собственный формат файлов свойств на основе UTF-8. – x4u 3 June 2011 в 18:26\uXXXX
меньше пространства, чем UTF-8 или UTF-16. Это также делает невозможным редактирование этих файлов в любом редакторе, который не знает об этой специальной кодировке. Но, по крайней мере, это позволяет сохранять и загружать весь текст в формате Unicode в расширение, которое поддерживается виртуальной машиной Java в целом. – x4u 3 June 2011 в 19:00