Есть ли какой-либо путь через java-программу, я могу сказать Excel открыть файл csv в utf8?
Я пишу данные в файл A.csv, используя javacode, а затем читаю файл A.csv и записывая в БД. У меня есть данные на китайском языке, и excel не распознает правильно, получая ненужные значения. Есть ли способ, которым я могу показать excel, чтобы открыть файл csv в utf8, чтобы javacode читал символы utf8 и записывал его в Db?
public class T { CSVWriter out = null; private void write(String[] values) throws IOException { out.writeNext(values); } public static void main(String[] args) throws IOException { File f = new File("s.csv"); FileOutputStream os = new FileOutputStream(f, false); CSVWriter out = new CSVWriter( new BufferedWriter( new OutputStreamWriter( os, "UTF-8"))); } }
- Могу ли я экспортировать данные Excel с UTF-8 без спецификации?
- php экспорт в excel с помощью utf8
- MySQL Экспорт арабских / персидских символов
- могу ли я изменить заголовок рабочего листа после «добавления» этой рабочей таблицы в книгу spreadsheet_excel_writer?
- Ошибка кодирования - xlsxwriter - Python
- Макрос VBA не работает при попытке сохранить UTF-8 как csv
- 'latin-1' кодек не может кодировать символ u '\ u2014' в позиции 23: порядковый номер не в диапазоне (256)
- Как кодировать UTF-8 для XML-документа в Java
- Вставка шрифта MLAthira malayalam в базе данных Mysql
- Почему MS Excel не открывает файл CSV, содержащий японские символы в содержимом?
- Как разбирать символы UTF-8 в файлах Excel с помощью POI
- UTF 8-байтовая длина строки в microsoft excel
- Чтение txt-файла и открытие с помощью excel
По умолчанию Excel пытается использовать локаль пользователя, чтобы определить, какой 8-битный Windows Charset использовать при открытии CSV.
Добавив в верхнюю часть файла спецификацию UTF-8, Excel (Windows и Mac> 2013) откроет файл в режиме UTF-8.
public static void main(String[] args) throws IOException { File f = new File("s.csv"); FileOutputStream os = new FileOutputStream(f, false); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( os, "UTF-8")); bw.write('\ufeff'); CSVWriter out = new CSVWriter(bw); //English, Euro sign, German, Greek String[] row = {"hello there","€", "Würzburg", "Αριστοτέλης Τέλλυ Σαβάλας"}; out.writeNext(row); out.close(); }
Используемая вами кодировка не поддерживает китайские буквы, однако измените UTF-8 на UTF-16, что подойдет вашему решению, поскольку оно поддерживает китайские буквы.
Если вы хотите поддерживать emojis и т. Д. В будущих обновлениях, используйте UTF-32.
Надеюсь, что это решает вашу проблему, лучше всего.