Toon posts:

[FLASH] Vreemde karakters in dynamic textfield

Pagina: 1
Acties:

Verwijderd

Topicstarter
Probleem is als volgt;
Uit een MySQL database haal ik middels PHP verschillende data op, waaronder stukken tekst. Als ik deze tekst in Flash wil laten zien (in een dynamic textfield uiteraard), dan verschijnen het €-symbool en tekens als ëäáàé etc. niet. Afhankelijk van het lettertype dat ik gebruik verschijnt het als een leeg vierkantje of gewoon als spatie.

Op verschillende sites heb ik al gezocht naar een oplossing, maar ik kom er niet uit. Wat ik al geprobeerd heb:

- system.useCodepage = true; link-> Lijkt totaal geen effect te hebben
- Ander lettertype gebruiken
- Speciale character-sets te embedden

Wat wél werkt is als ik ipv de database een tekst in txt-bestandje zet en deze opsla als UTF-8. Dan verschijnen alle karakters wél!

Als ik overigens de text echo via het php-bestand dan lijkt ie de tekst wel door te geven als unicode; spaties als + en de vreemde tekens met de codes.
(link)

Wie weet raad?

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 17-06 09:56

XangadiX

trepanatie is zóó kinderachtig

ik heb zelf een probleem met enters gehad (dubbele enters door unix en windows systemen die tegen elkaar in werken) en dat opgelost door de tekst als ascii na te kijken en weer terug te zetten:

Flash ActionScript:
1
2
3
4
5
function parse(string) {
    escapestring = escape(string)
    teststring = escapestring.split('%0D%0A').join('%0D');
    return(unescape(teststring))
}


ik denk dat dat ook moet werken voor vreemde tekens, moet je wel uitzoeken wat hun escaped value is natuurlijk.
Ik geef toe het is weinig elegant, maar het zou moeten werken

Stoer; Marduq


Verwijderd

Topicstarter
Dat is inderdaad niet echt de meest elegante oplossing... ;(
Er móet toch gewoon een functie in Flash zitten die zulke houtje-touwtje oplossingen zou moeten voorkomen? Hebben ze er Unicode support ingebouwd en dan geeft Flash ze alsnog niet goed weer...
Niemand anders die hier een idee voor heeft. Het lijkt me sterk dat ik de eerste ben op GOT die hier tegenaan loopt... 8)7

Verwijderd

Topicstarter
Mag ik even een beleefd schopje geven?...

Situatie is nog hetzelfde. Heb alleen nog ontdekt dat ik aan een dynamisch tekstveld dat gerenderd wordt als HTML alleen het Verdana-lettertype kan meegeven 8)7
Vind het alleen maar vreemder worden. Ik dacht namelijk dat Arial of _sans ook algemeen op Windows pc's gebruikt werd...

  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

ik heb dit ook een keer gehad...
helaas voor jou was dat bij mijn vorige werkgever, waar dus ook nog de aantekeningen liggen :|

dan maar uit mijn hoofd :) ik weet dus niet of het de waarheid is, maar probeer het eens uit....

in ieder geval had het idd te maken met HTML
Eerste stap: het geven van een var naam aan een textfield (dus rechtsonder) -> dan doet ie het wel goed (zonder naam voor textfield / html uit)

Volgende stap: als je het als text object gaat benaderen werkt het ook nog.
Zet je echter HTML aan, dan is het jammer maar helaas...

testen maar, succes!

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 17-06 09:56

XangadiX

trepanatie is zóó kinderachtig

dat is niet waar hoor, ik heb in een dynamisch textveld keurig een _sans weergegeven. Wat wel raar is dat ik in een Arial geen <b> en <i> meer mag doen, font tags (kleur) mogen dan weer wel. erg raar allemaal

eens op macromedia zoeken
* XangadiX makes a mental note

Stoer; Marduq


Verwijderd

Welcome to my world. Eindeloos gedoe altijd in ieder geval.
Xanga zijn tip is houtje touwtje, maar werkt meestal wel. De text die je returned vanuit php is wel utf8 encoded? Kijk even op php.net.
Het textfield zou ik benaderen zou ik persoonlijk niet doen als een variable, maar netjes als textfield_txt.htmlText ....

Je probleem met de fonts snap ik niet helemaal, heb je een voorbeeldje?

Als je het toch met php doet, zou ik trouwens ook even stilletjes een blik werpen op amfphp....is erg fijn werken als je toch met php aan de slag bent.......

Verwijderd

Topicstarter
Ik heb de oplossing _eindelijk_ gevonden! Aan de hand van de volgende geniale _/-\o_ tutorial heb ik het dan toch voor elkaar gekregen: How to create a guestbook using Flash, PHP & MySQL

In het PHP bestand waarmee de data naar de database geschreven wordt, gebruikt hij de volgende code om bijvoorbeeld de variable $name om te zetten:

code:
1
$name = ereg_replace("&", "%26", $_POST['yourname']);


Ik begrijp nog niet helemaal wat deze string nu doet (ben nog niet zó'n php-goeroe). Als ik bijvoorbeeld dit invoer: "Ë é ë €" dan komt dat als volgt in de database: "Ë é ë €"
Blijkbaar gaat Flash daar wel goed mee om. Vraag me niet waarom, maar goed.Ík ga morgen nog ff wat meer uitproberen (en wat voorbeeldjes posten als 't lukt), maar ben al helemaal :) omdat dit nu eindelijk werkt!

  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

ok, dan is het weer wat duidelijker...

als je het euro-teken oid in de database propt, dan zal hij dat als '&euro' in de db opslaan.

Nu is een '&' een scheidingsteken voor flash vars.
Dat wordt gereplaced met een '%26' -> zie deze lijst
Pagina: 1