probleme cgi ,utf-8 r3
rosanoff4-Mar-2019/6:27:17
Bonjour,
j'ai un problème de retour de code utf-8. Le fichier est écrit aussi en utf-8. la réponse du cgi me retourne un mauvais codage.
 #!/bin/r3 -cs
 REBOL []

 handle-get: funct [] [
 print [
 "Content-type: text/html" crlf crlf
 ]
 print [
 {
 <!DOCTYPE html>
 <html lang="br">
 <head>
 <meta charset="UTF-8">
 <title>Title ofthe document</title>
 </head>
 <body>
 }
 ]
prin [
<form method="post">
"Your name:"
<input type="text" name="nom">
<br>"Your surname:"
<input type="text" name="surss">
<input type="submit">
</form>
]
]

handle-post: funct [] [
print [
"Content-type: text/html" crlf crlf
]
print [
{
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Title ofthe document</title>
</head>
}
]
data: read/string system/ports/input

fields: parse data "&="

if error? try [
value:  dehex select fields "nom"
value: replace/all value "+" " "

val: [ "hello," (join value " !")]
 ]
                 [ val: " pas de choix ! " ]
 if error? try [
values: dehex  select fields "surss"
values: replace/all values "+" " "
vals: [ "prénom:," (join values " !")"<br>"]
  ]
                 [ vals: " pas de prénom ! " ]

do prin val
do prin vals
 ]

switch get-env "REQUEST_METHOD" [
"GET" [handle-get]
"post" [handle-post]
 ]

 print[{
 dédé est bon
 </body>
 </html>
 }
 ]


le résultat affiché :
hello, dédé !prénom:, dédé !
dédé est bon

donc j'ai un problème de codage, mais quoi ?
Si quelqu'un a une solution, je suis preneur.
Merci par avance.

PS; j'ai testé en C et en shell et là pas de problème donc ce n'est pas un problème de configuration serveur (h2o server )
PierreCh13-Mar-2019/12:02:37
Bonjour,

Désolé, je ne pratique pas le Rebol3.
Et sur Rebol2, il arrive que ça soit frustrant, ces soucis d'encodage...
En revanche, sur Red, ça tourne sans anicroche, avec nos (mauvais) caractères de gaulois et autres peuples réfractaires.

Oui, je sais, c'est inconstructif.

Alors juste une piste à la noix, un peu pénible, mais bon: afficher une consigne pour faire entrer à l'utilisateur quelque chose comme:
dédé


Je sais, c'est très c0n. J'ai pas mieux sous la main.
PierreCh13-Mar-2019/12:04:38
C'est surtout très c0n quand le rendu n'est pas ce que je souhaitais!...

En l'occurrence, j'avais mis ça, en en ôtant les espaces:
d & e a c u t e ; d & e a c u t e ;


(en espérant que ça passe)
rosanoff16-Mar-2019/7:01:38
Bonjou,
merci pou vos réponses.
Concernant RED je n'ai pas trouvé comment faire du cgi. Je pense que cela n'est pas encore possible. Donc je patiente.
Cordialement.
GreG2-Apr-2019/19:42:10
Bonjour,

L'encodage UTF-8 ne doit pas être confondu avec Unicode.
R3 est unicode mais je ne suis pas sur qu'il y ait une convertion UTF-8 intégrée.

Exemple de script R2 pour convertir en UTF8:
http://www.rebol.org/view-script.r?script=str-enc-utils.r
Graham27-Apr-2019/21:10:12
R3/ren-c has recently become fully utf8 compliant. You could try that.

Downloads: https://github.com/metaeducation/ren-c/tree/master/prebuilt

to get the bootstrap binaries.

and at the r3 console type "do <latest-of>", and once that function is available, then

"latest-of 0.4.40" will give you a link to download the latest build for that OS

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2