마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

CSV 한글 깨짐 현상ㅠㅠㅠ

0 추천
	File dbFile = getDatabasePath("abook");
			// AABDatabaseManager dbhelper = new
			// AABDatabaseManager(getApplicationContext());
			DBHandler dbhelper = new DBHandler(Suljung.this);
			System.out.println(dbFile); // displays the data base
										// path in your
										// logcat

			File exportDir = new File(
					Environment.getExternalStorageDirectory(), "");

			if (!exportDir.exists())

			{
				exportDir.mkdirs();
			}

			Date now = new Date();
			SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmm");
			File file = new File("/sdcard/data/SB_backup/", "expense"
					+ date.format(now) + ".csv");
			try {
				if (file.createNewFile()) {
					System.out.println("File is created!");
					System.out.println(file.getAbsolutePath());
				} else {
					System.out.println("File already exists.");
				}

				CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
				// SQLiteDatabase db =
				// dbhelper.getWritableDatabase();

				Cursor curCSV = dbhelper.all();

				csvWrite.writeNext(curCSV.getColumnNames());

				while (curCSV.moveToNext())

				{

					String arrStr[] = { curCSV.getString(0),
							curCSV.getString(1), curCSV.getString(2),
							curCSV.getString(3), curCSV.getString(4),
							curCSV.getString(5), curCSV.getString(6),
							curCSV.getString(7) };

					/* curCSV.getString(3),curCSV.getString(4)}; */

					csvWrite.writeNext(arrStr);

				}

				csvWrite.close();
				curCSV.close();

 

코드를 이렇게 짜두었는데요.

엑셀로 확인 했을 때 한글이 다 깨지더라구요.

 

검색 해보니까

 

FileOutputStream fos = new FileOutputStream(file);
Writer out = new OutputStreamWriter(fos, "EUC-KR");

 

이 코드로 해결 하셨다는 분이 계시던데 저 코드를 어디에 적용 시켜야 되는지 모르겠어요ㅠㅠㅠㅠ

53 (580 포인트) 님이 2014년 3월 3일 질문

1개의 답변

0 추천
 
채택된 답변
CSVWriter 생성할 때 FileWriter 생성해서 넘겨주시잖아요

그걸 위의 OutputStreamWriter로 대체하심 되겠네요
b22n (22,940 포인트) 님이 2014년 3월 3일 답변
53님이 2014년 3월 3일 채택됨
그럼 File file=~ 을 outputstreamwriter로 바꾸라고 나와서 바꿨더니 인자들이 안 맞는다고 에러가 나요ㅠㅠㅠㅠㅠ
해결 됐어요. 감사합니다 =]
...