Autor | Zpráva | ||
---|---|---|---|
rad Profil * |
#1 · Zasláno: 9. 1. 2012, 23:15:20
snazim se o prevod znaku. zkousim to takhle ale nejspis to nefunguje nevite co jineho pouzit ?
diky za odpoved function affiche(str) { var arr=[ "Ě","Ě","š", "Š","č","Č", "ř","Ř","ž", "Ž","ý", "Ý", "á", "Á","í", "Í","é","É", "ú", "ú","ů", "Ů","ď", "Ď", "ť","Ť","ň", "Ň"]; var barr=["ě","Ě","š","Š", "č","Č","ř","Ř", "ž","Ž","ý","Ý", "á","Á","í","Í", "é","É","ú","Ú", "ů","Ů","ď","Ď", "ť","Ť","ň","Ň"]; return str.replace(arr,barr) } var firma = affiche(data.firma); |
||
rad Profil * |
#2 · Zasláno: 10. 1. 2012, 10:03:33
tak zkousim jinou verzi porad bohuzel bez vysledku zde je upraveny kod :
var accent_map = { 'Ě':'ě', 'Ě':'Ě', 'š':'š','Š':'Š','č':'č', 'Č':'Č', 'ř':'ř', 'Ř':'Ř','ž':'ž','Ž':'Ž', 'ý':'ý', 'Ý':'Ý', 'á':'á','Á':'Á','í':'í', 'Í':'Í', 'é':'é', 'É':'É','ú':'ú','ú':'Ú', 'ů':'ů', 'Ů':'Ů', 'ď':'ď','Ď':'Ď','ť':'ť', 'Ť':'Ť', 'ň':'ň', 'Ň':'Ň' }; function accent_fold (s) { if (!s) { return ''; } var ret = ''; for (var i = 0; i < s.length; i++) { ret += accent_map[s.charAt(i)] || s.charAt(i); } return ret; }; |
||
Chamurappi Profil |
Reaguji na rada:
Co by to mělo dělat? Převádět Ě na ě a ú na Ú ? Nic víc z uvedených kódů nejde vyčíst. Ten druhý by měl fungovat (na převod těchto dvou písmen).
|
||
Radek9 Profil |
#4 · Zasláno: 10. 1. 2012, 10:08:40
rad:
Nechápu, o co se snažíš. V klíči i v hodnotě máš totožný znak. |
||
rad Profil * |
#5 · Zasláno: 10. 1. 2012, 10:22:15 · Upravil/a: rad
ok tak uz asi vim kde je problem jen nevim jak ho vyresit : kdyz se podivam do zdrojoveho kodu meho javascriptu v prohlizeci znaky s diakritikou jsou jinak formatovane .
netusim uz proc to je. tady na jak psat web se entity automaticky zmenily na znaky takze predchozi prispevek vypada asi divne. snazim se o toto : 'Ě' : 'ě', snazim se o toto 'Ě':'ě', omlouvam se kdyz zadam entitu jakpsatweb diskuze mi automaticky vypise spravny znak ja ale dostavam data prave v te entite tak to chci prevest nejak v javascriptu. |
||
Petr ZZZ Profil |
rad:
„diskuze mi automaticky vypise spravny znak“ Tady na diskusi můžeš entitu rozbít pomocí klávesové mapy (obarvit, Ctrl + ↓, funkce, zamezit BB formátování), nebo přímým přidáním vykřičníku v hranatých závorkách: &[!]#344; Moderátor Chamurappi: Když odkazuješ na stejnou stránku, odkazuj laskavě na kotvu, ať se zbytečně neotvírá do nového okna…
|
||
rad Profil * |
#7 · Zasláno: 10. 1. 2012, 11:14:39
ok diky za odpoved
o co se snazim o tohle bohuzel to nefunguje a ani asi nemuze protoze kdyz se podivam do zdrojoveho kodu tak ty entity se prepisou na nejaky nesmysli v prohlizeci nevim proc a co s tim diky za odpoved : var accent_map = { 'Ě':'ě', 'Ě':'Ě', 'š':'š','Š':'Š','č':'č', 'Č':'Č', 'ř':'ř', 'Ř':'Ř','ž':'ž','Ž':'Ž', 'ý':'ý', 'Ý':'Ý', 'á':'á','Á':'Á','í':'í', 'Í':'Í', 'é':'é', 'É':'É','ú':'ú','ú':'Ú', 'ů':'ů', 'Ů':'Ů', 'ď':'ď','Ď':'Ď','ť':'ť', 'Ť':'Ť', 'ň':'ň', 'Ň':'Ň' }; function accent_fold (s) { if (!s) { return ''; } var ret = ''; for (var i = 0; i < s.length; i++) { ret += accent_map[s.charAt(i)] || s.charAt(i); } return ret; }; |
||
_es Profil |
#8 · Zasláno: 10. 1. 2012, 11:18:43
rad:
„tak ty entity se prepisou na nejaky nesmysli v prohlizeci“ No a do prehliadača sa dostanú odkiaľ? Tak to oprav tam, teda v HTML kóde, či v niečom inom, kde sa ten HTML kód generuje. |
||
Chamurappi Profil |
#9 · Zasláno: 10. 1. 2012, 11:30:19
Reaguji na rada:
Šlo by to vyřešit jedním replace s callback funkcí, která zavolá String.fromCharCode . Ale nejsem si jistý, že to opravdu potřebuješ.
„ty entity se prepisou na nejaky nesmysli v prohlizeci“ Na jaké nesmysly? |
||
rad Profil * |
#10 · Zasláno: 10. 1. 2012, 11:38:18
jde mi o to to jenom preves taham s jsonu vysledek s entitama ... chci je prevest pomoci funkce uvadene nahore na ceske znaky.
nevim kde je chyba ale funkce nic neprevadi. nevim jestly a co delam spatne ale prozenu to funkci a nezmeni se nic ... var accent_map = { 'Ě':'ě', 'Ě':'Ě', 'š':'š','Š':'Š','č':'č', 'Č':'Č', 'ř':'ř', 'Ř':'Ř','ž':'ž','Ž':'Ž', 'ý':'ý', 'Ý':'Ý', 'á':'á','Á':'Á','í':'í', 'Í':'Í', 'é':'é', 'É':'É','ú':'ú','ú':'Ú', 'ů':'ů', 'Ů':'Ů', 'ď':'ď','Ď':'Ď','ť':'ť', 'Ť':'Ť', 'ň':'ň', 'Ň':'Ň' }; function accent_fold (s) { if (!s) { return ''; } var ret = ''; for (var i = 0; i < s.length; i++) { ret += accent_map[s.charAt(i)] || s.charAt(i); } return ret; }; var firma = data.firma; var ulice = data.ulice; var mesto = data.mesto; firma = accent_fold(firma); ulice = accent_fold(ulice); mesto = accent_fold(mesto); alert (firma); |
||
_es Profil |
#11 · Zasláno: 10. 1. 2012, 12:01:51
rad:
„taham s jsonu vysledek s entitama“ Ak chceš priamo text bez entít, prečo ho server neposiela ako trebárs text v UTF-8, teda, prečo to neopravíš na serveri? A potrebuješ ich prevádzať? Veď pri zápise napríklad pomocou zmeny vlastnosti innerHTML sa entity na znaky prevedú automaticky.
Nemáš v tých entitách trochu zmätok? Ě a ě sú odlišné znaky s odlišnými entitami.
|
||
rad Profil * |
#12 · Zasláno: 10. 1. 2012, 12:14:39
diky za radu ohledne innerHTML ale jak ho pouzit pro muj pripad ?
takhle data vkladam do formulare $('input[name=firma]').val(firma); $('input[name=ulice]').val(ulice); //$('input[name="cast"]').val(data.cast_obce); $('input[name=mesto]').val(mesto); $('input[name=psc]').val(data.psc); |
||
_es Profil |
#13 · Zasláno: 10. 1. 2012, 12:29:23
rad:
Prevedenie textu s HTML entitami na textový reťazec bez entít spravíš jednoducho: function prevodEntit(s) { var p = document.createElement("p"); p.innerHTML = s; return p.innerHTML; } |
||
rad Profil * |
#14 · Zasláno: 10. 1. 2012, 12:35:35
super diky funguje to konecne diky moc za rady
|
||
Petr ZZZ Profil |
Reaguji na Chamurappiho:
„odkazuj laskavě na kotvu“ Před pár týdny jsem nepřišel na to, jak v rámci vlákna udělat z jednoduché kotvy #3 superkotvu #najdi(znaky) (myslím jsem se ji pokoušel zdvojit #3#najdi() , což nefungovalo), tak jsem to pustil z hlavy. Teď, když vidím, jak je to jednoduché, nějak nechápu, proč mě to nenapadlo. Asi už blbnu. Mimochodem, myslel jsem, že to není důležité. ;-)
Moderátor Chamurappi: Není to důležité a je to tu naprosto mimo téma. Stejně jako [#6].
|
||
_es Profil |
#16 · Zasláno: 10. 1. 2012, 14:19:42
rad:
„funguje to“ Miesto tej funkcie by to aj tak bolo lepšie opraviť na serveri. |
||
peta Profil |
#17 · Zasláno: 12. 1. 2012, 14:20:57 · Upravil/a: peta
Tady mam jakysi starsi priklad, treba bys to taky uzivil.
http://peter-mlich.wz.cz/web/js/prx/diakritika.htm A jakysi novejsi, ale tam zas neni utf. http://peter-mlich.wz.cz/web/js/prx/diakritika3.htm |
||
_es Profil |
#18 · Zasláno: 12. 1. 2012, 15:04:12
|
||
peta Profil |
#19 · Zasláno: 13. 1. 2012, 08:16:57
_es: Jo tak, ja myslel, ze resi klasickou diakritiku. A prave ty kody s entitami me zmatli, tak jsem to ani necetl. Mozna neco malo by se dalo vydolovat. A to, ze soubor musi byt zapsany jako utf a mit meta tag utf, jinak mu to spravne nebude brat ty spesl znaky.
|
||
Časová prodleva: 6 dní
|
|||
rad Profil * |
#20 · Zasláno: 19. 1. 2012, 14:11:52
jeste se k tomu vracim vyskytl se mi problem nektere znaky se i v pres tu funkci nezapisuji spravne je to kontkretne 'š' => '&>#353;', a 'Š' => '&>#352;',
je to nejspis tim co jsem nasel tady : http://stackoverflow.com/questions/4162270/dom-exception-when-assigning-html-entities-to-innerhtml jak by jste to resily ? ja to bohuzel na serveru opravit nemuzu! parsuju data z jine stranky proto to prevadeni. function prevodEntit(s) { var p = document.createElement("p"); p.innerHTML = s; return p.innerHTML; } firma = prevodEntit(firma); ulice = prevodEntit(ulice); mesto = prevodEntit(mesto); |
||
_es Profil |
#21 · Zasláno: 20. 1. 2012, 11:55:13
rad:
„ja to bohuzel na serveru opravit nemuzu! parsuju data z jine stranky“ Akým spôsobom v JS ťaháš dáta z inej stránky? „nektere znaky se i v pres tu funkci nezapisuji spravne je to kontkretne 'š' => '&>#353;'“ V akom prehliadači je prevodEntit('&>#353;') niečo iné ako 'š' ?
|
||
rad Profil * |
#22 · Zasláno: 22. 1. 2012, 15:39:24
ve firefoxu se to prevede na neco jineho ! taham to pomoci php - jquery pouzivam pro ajax volani a odezvu.
|
||
Chamurappi Profil |
#23 · Zasláno: 22. 1. 2012, 16:30:59
Reaguji na rada:
Na co jiného se to tedy převede? Opravdu je na vstupu entita &>#353 ? Myslím, že moc nevěříme tvým pozorováním a živou ukázku asi dodat nechceš, takže jsme ve slepé uličce.
„je to nejspis tim co jsem nasel tady : ht>tp://stackoverflow.com/questions/4162270/dom-exception-when-assigning-html-entities-to-innerhtml“ Nepravděpodobné. Tobě zahlásí Firefox výjimku? |
||
rad Profil * |
#24 · Zasláno: 22. 1. 2012, 23:33:02
firefox prevede ą >š
firefox mi vyjimku nehlasi netusim proc to tak je ostatni entity se prevadeji v poradku |
||
_es Profil |
rad:
„ja to bohuzel na serveru opravit nemuzu! parsuju data z jine stranky proto to prevadeni.“ „taham to pomoci php“ Takže si to oprav na serveri - na tvojom - v PHP. Máš stránku v kódovaní utf-8? |
||
Chamurappi Profil |
#26 · Zasláno: 23. 1. 2012, 08:34:50
Reaguji na _es:
„Máš stránku v kódovaní utf-8?“ Nemělo by hrát roli. I kdyby používal us-ascii, číselné entity musí fungovat vždy stejně. |
||
_es Profil |
#27 · Zasláno: 23. 1. 2012, 08:52:32
Chamurappi:
„číselné entity musí fungovat vždy stejně.“ To áno, no možno by sa výsledok tej funkcie mohol odlišovať pri rôznych kódovaniach, napríklad by entita nemusela byť zmenená na znak, ale by zostala bez zmeny. |
||
Časová prodleva: 13 let
|
0