Oznámení
Texy! XML-RPC Service
před 13 lety
- zsery
- Člen | 5
Zkouším použít Texy! XML-RPC Service pomocí MSXML2.DOMDocument.3.0. Při zaslání stringu s HTML značkami je mi vrácen string jakoby HTMLencoded, uvozovky – hodnoty parametrů jsou převedeny na první uvozovka dole druhá nahoře ‚‘ a celé je to zavřené do XHTML tagu p, string po HTML dekódování obsahuje HTML kód.
Díky za odpověď.
před 13 lety
- David Grudl
- Nette Core | 6806
Raději jsem XML/RPC službu upravil – nyní je jako vstupní i výstupní formát podporován pouze typ base64. Posílej tedy text v tomto formátu a vyhneš se všem problémům.
před 13 lety
- zsery
- Člen | 5
Poslal jsem uplně stejný, ale teď již převedený html formátovaný text
jako base64 a nyní se mi již vrátil pouze base64 kódovaný string
<!-- generated by Texy! -->
zde jsou vstupní data :
(smazáno, dgx)
díky za pomoc
před 13 lety
- zsery
- Člen | 5
vypadl text , který jsem zadal na druhém řádku, zadávám jej tedy
v původní base64 podobě :
„CjwhLS0gZ2VuZXJhdGVkIGJ5IFRleHkhIC0tPg==“
tedy :
< ! – – generated by Texy! – – >
snad se to již nesmaže
před 13 lety
- David Grudl
- Nette Core | 6806
Nejsem schopen ten text dekódovat. XMLRPC server (zatím) využívá poslabších knihoven PEAR a ty v případě neúspěchu při dekódování namísto chyby vrátí prázdný řetězec. Proto tedy nebylo nic ani na výstupu.
Otázkou je, proč text nemůžu dekódovat. Zkuste schválně zakódovat něco kratšího, třeba ‚Texy!‘ ⇒ ‚VGV4eSE=‘
před 13 lety
- zsery
- Člen | 5
Text je zdroj ze souboru http://www.razdva.cz/…/oldHTML.HTM zakódovaný funkcí javascriptu encode64, zdroj této funkce je na http://www.razdva.cz/zsery/base64.js a je tam i funkce na dekódování decode64. Stejný text enenkódovaný jsem posílal jako dříve jako UTF-8 string.
Zkusil jsem poslat
<H1><A href=„javascript“>Ahoj
ěčšřčžřýž</a></H1>
encode64 to je
PEgxPjxBIGhyZWY9ImphdmFzY3JpcHQiPkFob2ogw1hQ1+f1+PC9hPjwvSDE+
a vrátilo se mi
CjxwPiZsdDtIMSZndDs8YSBocmVmPSJqYXZhc2NyaXB0Ij5BaG9qIMNYUNfn9fjwvYT48L0gxDwvYT48L3A+Cgo8IS0tIGdlbmVyYXRlZCBieSBUZXh5ISAtLT4=
HTML encodované a decode64
„
<p><H1><a href=\"javascript\“>Ahoj ÃXP×çõøð½øð½
Ä</a></p>
< ! – – generated by Texy! -->"
H1 je zvláštně zpracováno, encodováno a ztratil se zakočovací tag, čeština také zmizela
Funkce javascriptu by měly korenktní, poraďte prosím. Díky.
před 13 lety
- David Grudl
- Nette Core | 6806
Ta funkce encode64() určitě nemůže fungovat dobře pro znaky mimo rozsah ASCII. Tedy chtělo by to řetězec v UTF-8 převést na řetězec bajtů.
Zkus před encode64() zavolat na řetězec tuhle funkci (snad je to dobře).
function utf8_to_binary(utftext)
{ //dgx
var c, i, binary="";
for (i=0; i<utftext.length; i++)
{
c=utftext.charCodeAt(i);
if (c<128)
binary += String.fromCharCode(c);
else if (c>127 && c<2048) {
binary += String.fromCharCode((c>>6)+192);
binary += String.fromCharCode((c&63)+128);
} else {
binary += String.fromCharCode((c>>12)+224);
binary += String.fromCharCode(((c>>6)&63)+128);
binary += String.fromCharCode((c&63)+128);
}
}
return binary;
}
před 13 lety
- David Grudl
- Nette Core | 6806
Další věc je dekódování. Nejprve tedy proveď decode64() a potom ještě zavolej tuto reverzní funkci (opět doufám, že tam nejsou chyby):
function binary_to_utf8(binary)
{ //dgx
var c, c2, c3, i=0, utftext="";
while (i<binary.length)
{
c = binary.charCodeAt(i++);
if (c<128) {
utftext += String.fromCharCode(c);
} else if (c>191 && c<224) {
c2 = binary.charCodeAt(i++);
utftext += String.fromCharCode(((c&31)<<6)|(c2&63));
} else {
c2 = binary.charCodeAt(i++);
c3 = binary.charCodeAt(i++);
utftext += String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));
}
}
return utftext;
}
před 13 lety
- zsery
- Člen | 5
Nejdříve dík, již dostávám návratovou hodnotu. V návratových datech je v různých místech vkládána entita & shy ; a dále se opět opakuje původní problém uvozovky – hodnoty parametrů jsou převedeny na první uvozovka dole druhá nahoře ‚‘ . TAké jsem mysle, že se text přeformátuje do XHTML, ale vrací se v původní podobě. není třeba nastavit nějaký xml atribut vůči default?
před 13 lety
- David Grudl
- Nette Core | 6806
Vkládání entity ­
je korektní chování Texy. Pokud
jde o tagy a atributy, zdá se, že nejsou povolené – tedy potřeboval bych
vědět, s jakými parametry přesně službu voláte.