astere Posted October 27, 2011 Report Share Posted October 27, 2011 (edited) Sveiki, radusies interesanta problēma. Lieta sekojoša- lietotājs augšuplādē csv failu uz serveri. csv fails teorētiski satur garumzīmes (tās neredzu) un ir ansi kodējumā. Fails tiek lasīts izmantojot fgetcsv , gala rezultātā garumzīmju vietā figurē labākā gadījumā ķeburi, sliktākā - melns kvadrāts, taja pašā laikā ja ar roku nomaina kodējumu un iekopē tekstu par jaunu (ar garumzīmēm) tad viss strādā Palaižot katram vārdam cauri mb_detect_encoding , vārdi kas nesatur garumzīmes tiek nomarķēti kā ansi , savukārt pārējie kā utf-8 .. Nu tad būtu nepieciešams dabūt garumzīmes normālā veidā - cik nu normālā iespējams, dotajā momentā nenāk prātā kā to izdarīt.. Idejas? Ierosinājumi? Nē! Faila kodējums ar roku netiks mainīts, tas tiek ģenerēts no servera puses un izmaiņas otrā galā ir diezgan sarežģītas... Savukārt jūzeris, kas saņemto failu gribēs augšuplādēt - nevēlas to vērt vaļā jo brīžiem rindu skaits failā max=2k, katrā rindā ir 1-3 vārdi,kas satur garumzīmes , ir iespējams, ka rindu skaitu samazinās līdz 500 Edited October 27, 2011 by astere Link to comment Share on other sites More sharing options...
rpr Posted October 27, 2011 Report Share Posted October 27, 2011 ar iconv() kovertē no kāda uz kādu enkodingu vajag. Link to comment Share on other sites More sharing options...
astere Posted October 27, 2011 Author Report Share Posted October 27, 2011 jau ir mēgināts - drausmīgi ilgi konvertējas (tas vēl ir sīkums), bet neparāda vēlamo rezultātu, iespējams, ka nepareizi kautko darīju Link to comment Share on other sites More sharing options...
astere Posted October 27, 2011 Author Report Share Posted October 27, 2011 (edited) viss kārtībā, mana kļūda. Bija izkritis no prāta, ka ieraksti ir case sensitive - dooh a) iconv('Windows-1257', 'UTF-8//TRANSLIT',$data[4]); b) iconv('ISO-8859-13', 'UTF-8//TRANSLIT',$data[4]); Edited October 27, 2011 by astere Link to comment Share on other sites More sharing options...
Recommended Posts