Jump to content
php.lv forumi

Download filename in UTF-8


AcidRain

Recommended Posts

Labrīt,

Ļoti vienkārša situācija, kurā neredzu veiksmīgu risinājumu.

Ir forma, ar kuras palīdzību tiek augšuplādēts fails un tālāk tiek ierakstīts datu bāzē.

Šai formai kodējums tiek imantots UTF-8.

Arī datubāzē tiek ierakstīts faila nosaukums, kurš protams nu jau ir UTF-8 kodējumā.

 

Problēma,

Augšuplādējam failu ar nosaukumu āšē.doc.

Tad, kad vēlamies to lejuplādēt, tas jau ir nevis āšē.doc, bet gan Ä?Å

Link to comment
Share on other sites

Varbūt, ka ērtāk būtu, ja datubāzē saglabātu faila nosaukumu tajā pašā UTF-8, bet failu nevis saglabātu ar tādu nosaukumu, bet ar datubāzē esošo id. Teiksim būtu datubāzes ieraksti:

 

id | filename

1 test.txt

2 āšēķģ.doc

3 briežu dzimtas noslēpumi.ppt

 

Failu sistēma

 

1.file

2.file

3.file

 

Pēc tam jau no datubāzes nolasām vajadzīgo failu, kuru vajag atļaut downloadēt un ar header padodam UTF-8 faila nosaukumu, bet pašu padodamo failu savācam attiecīgi pēc id, teiksim šajā gadījumā 1, 2 vai 3.

 

[edit]

A varbūt problēma nav failu sistēmā, bet header - tb. varbūt viņš vienkārši nesaprot multi-byte simbolus. Tad laikam tas neies cauri.

Edited by Kaklz
Link to comment
Share on other sites

ir papildus headers, resp. var norādīt alternatīvos nosaukumus vairākos kodējumos title*baitu prioritāte*=kodējums'val.iso-kods'title (resp.utf-8 tas varētu būt title*2=utf-8'lv'āšā.doc). Bet, of coss, visi pārlūki to pārsvarā ignorē (daži mailparseri gan havo).

Problēma ir tajā, ka paša pārlūka save dialogs apstrādā faila nosaukumu kā ANSII. Pamēģini vienkārši nolinkot failu (noņem attachment headerī) - droši vien paņems un atvērs. Priekš IE bija kaučkāds patčs, kas iespējoja unicode rakstīšanu adreslogā (visādiem www.glāžšķūņurūķīši.lv) un att. failu nosaukumos.

Droši vien nāksies izmantot iconv('utf-8','windows-1257//TRANSLIT',$filename);

Link to comment
Share on other sites

×
×
  • Create New...