Laravel-excel: CSV ๋‚ด๋ณด๋‚ด๊ธฐ์˜ UTF8 ๋ฌธ์ œ

์— ๋งŒ๋“  2014๋…„ 08์›” 04์ผ  ยท  19์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Maatwebsite/Laravel-Excel

"->export('xls')"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐ๊ณผ๋Š” ๊ดœ์ฐฎ์ง€๋งŒ "->export('csv')"๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด UTF8 ๋ฌธ์ž์— ์ธ์ฝ”๋”ฉ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ: Waister Guimarรฉes," [email protected] "

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ config/excel.php๋ฅผ ํŽธ์ง‘ํ•ด ๋ณด์‹ญ์‹œ์˜ค. 'use_bom' => false ์—์„œ 'use_bom' => true

๋ชจ๋“  19 ๋Œ“๊ธ€

xls์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค๋ฉด PHPExcel์˜ csv ์ž‘์„ฑ์ž์— ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๋ฌธ์ œ์™€ ํฌ๋Ÿผ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ, ํ™•์ธํ•˜๊ณ  ์งˆ๋ฌธ์„ ํ–ˆ์ง€๋งŒ ์ˆ˜์ž… ํ–‰์œ„์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‘ ๊ฐœ์˜ ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” XLS์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” CSV๋กœ ์ด ์ฝ”๋“œ์—์„œ ์ƒ์„ฑํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค(๋ฌผ๋ก  ->download('xml') ํฌํ•จ).

Excel::create('์ƒˆ ํŒŒ์ผ', function($excel) {
$excel->sheet('์ƒˆ ์‹œํŠธ', function($sheet) {
$sheet->loadView('ํ…Œ์ŠคํŠธ');
});
})->๋‹ค์šด๋กœ๋“œ('csv');

์•„ ๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๊ธฐ ํŒŒ์ผ์˜ ํ—ค๋“œ์— <meta charset="UTF-8"> ๋ฅผ ํฌํ•จํ•˜์—ฌ UTF-8์„ ๊ฐ•์ œ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋Œ“๊ธ€์— ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ๋งŒ ๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๊ฐ€ ํƒœ๊ทธ๊ฐ€ ์žˆ์–ด๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ Laravel Excel์„ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์•Œ๋ ค์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

2014๋…„ 8์›” 7์ผ ๋ชฉ์š”์ผ ์˜ค์ „ 2:07 Waister Nunes [email protected]
์ผ๋‹ค:

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๋Œ“๊ธ€์— ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•˜๋Š” ๊ฒƒ์„ ์žŠ์—ˆ์Šต๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ๋งŒ ๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๊ฐ€ ํƒœ๊ทธ๊ฐ€ ์žˆ์–ด๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/Maatwebsite/Laravel-Excel/issues/188#issuecomment -51397361
.

๊ด‘๋ฒ”์œ„ํ•œ ๋ฌธ์„œ๋Š” http://www.maatwebsite.nl/laravel-excel/docs ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

@waister ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฐ€์ ธ์˜จ ๋ฌธ์ž(๊ฑฐ๊ธฐ์—์„œ ์˜จ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค)๊ฐ€ UTF-8๋กœ ์ธ์ฝ”๋”ฉ๋˜์–ด ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ–ˆ๋‹ค. , ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์—์„œ csv ํŒŒ์ผ์„ ์—ด๋ฉด ๋ฌธ์ž๊ฐ€ ์ž˜ ๋ณด์ž…๋‹ˆ๋‹ค.

@Maat์›น์‚ฌ์ดํŠธ ํฌํ•จ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

@Maat์›น์‚ฌ์ดํŠธ์ง€์›
UTF-8์ด ์•„๋‹Œ csv ํŒŒ์ผ์„ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ผ๋ณธ์–ด๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด SJIS๋กœ ํŒŒ์ผ ๋‚ด๋ณด๋‚ด๊ธฐ์™€ ๊ฐ™์€.

๋˜ํ•œ ์…€์— ์“ฐ๊ธฐ ์ „์— utf8_encode(string)๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋ฐฐ์—ด, ๋ชจ๋ธ ๋˜๋Š” ๋ทฐ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ €์—๊ฒŒ๋„ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ ํ•ด๊ฒฐํ•˜์‹  ๋ถ„ ๊ณ„์‹ ๊ฐ€์š”..
CSV๋ฅผ ๋‚ด๋ณด๋‚ด๋ ค๊ณ  ํ•  ๋•Œ ์‹ค์ œ๋กœ ๋ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Excel๋กœ ์—ด๋ ค๊ณ  ํ•˜๋Š” ๋™์•ˆ ์ผ์ข…์˜ ์ผ๋ณธ์–ด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๊นŒ?
์—‘์…€์ด๋‚˜ ๋‹ค๋ฅธ๊ฒŒ ๋ฌธ์ œ์ธ๊ฐ€์š”?

Excel์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

ob_end_clean(); ob_start();

์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ config/excel.php๋ฅผ ํŽธ์ง‘ํ•ด ๋ณด์‹ญ์‹œ์˜ค. 'use_bom' => false ์—์„œ 'use_bom' => true

@manhtqb ๊ฐ„๋‹จํ•˜๊ณ  ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋ˆ„๊ตฐ๊ฐ€ ์ด๊ฒƒ์„ ๋ณธ๋‹ค๋ฉด,

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ’์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค: 'use_bom'=>false๋ฅผ 'use_bom'=>true๋กœ

config ํด๋”์— ์žˆ๋Š” excel.php ํŒŒ์ผ์˜ 'csv' ๋ถ€๋ถ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์—๊ฒŒ ์„ฑ๊ณต์„ ๊ธฐ์›ํ•ฉ๋‹ˆ๋‹ค!

์ด ๋ฌธ์ œ๋Š” CSV ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋™์•ˆ์—๋„ ์—ฌ์ „ํžˆ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. use_bom ์„ true ๋กœ ์„ค์ •ํ–ˆ์ง€๋งŒ ํ˜•์‹ ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์„ true๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Excel์—์„œ csv ํŒŒ์ผ์„ ์—ด๋ฉด ๋‘ ๋ฒˆ์งธ ๋ฌธ์ œ๊ฐ€ ์ง€์†๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์„ true๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Excel์—์„œ csv ํŒŒ์ผ์„ ์—ด๋ฉด ๋‘ ๋ฒˆ์งธ ๋ฌธ์ œ๊ฐ€ ์ง€์†๋ฉ๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ์•„์ฃผ ์˜ค๋ž˜๋œ ํ‹ฐ์ผ“์— ๋‹ต์žฅ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Laravel Excel 3.1 ๋ฒ„์ „์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์—ด๊ณ  ๋ฌธ์ œ ํ…œํ”Œ๋ฆฟ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”. ์ด์ „ ๋ฒ„์ „์˜ Laravel Excel์€ ๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ config / excel.php๋ฅผ ํŽธ์ง‘ํ•ด ๋ณด์‹ญ์‹œ์˜ค: from 'use_bom' => false to 'use_bom' => true

๋‹น์‹ ์€ ๋‚  ๊ตฌํ•ด์คฌ์–ด, ํ›Œ๋ฅญํ•œ ์ Š์€์ด!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰