From: Jan-Ole E. <es...@gm...> - 2006-09-26 12:11:44
|
Hello List, I am fairly new to Erlang and Yaws, and by the way also new to this list, and I have a problem that I can't seem to wrap my head around. Unfortunately it's a lot of code and I don't know exactly where the error happens, so I'll just try to describe it: I am writing a complex file upload form using the recipe from Trapexit (http://wiki.trapexit.org/index.php/How_to_setup_your_own_Web_server_with_Yaws), and I have several other form fields of course (such as the name of the file). All my other code works perfectly with umlauts (German umlauts - äöü, and also the special character ß) and special characters, but this doesn't at all. When I enter an umlaut in one of the other fields, it reaches the server as garbage. I'm guessing it's because of the conversion from binary, but when I cause an error in the upload handler for the field that contains the upload, the server's response (to the browser, where the encoding is wrong at a later point) contains the umlaut just fine, and if I print representations to the console at any point -- inside the upload handler, inside my upload action, just before writing to mnesia on the server -- they are always identical. This is the handler -- very simple: addFileChunk(A, [{head, {"name", _Opts}}, {body, Data}|Res], State ) -> addFileChunk(A, Res, State#upload{fename = Data}); And all that happens in the upload action is that the data for the name field is extracted from the record and written to mnesia. However, as I said, it differs from other data extracted from form fields (and written to mnesia via JSON handlers -- though I don't think _that_ should make a difference). I'm really a little desperate at this point, and would appreciate any help. Thanks in advance, Ole |
From: Torbjorn T. <to...@to...> - 2006-09-27 07:47:15
|
Can it be a problem with what character set are you using ? What charset are you using and what does the browser expect ? In your HTML 'head' part you should specify the charset used, ex: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> Cheers, Tobbe Jan-Ole Esleben wrote: > Hello List, > > I am fairly new to Erlang and Yaws, and by the way also new to this list, > and I have a problem that I can't seem to wrap my head around. > Unfortunately it's a lot of code and I don't know exactly where the error > happens, so I'll just try to describe it: > > I am writing a complex file upload form using the recipe from Trapexit > (http://wiki.trapexit.org/index.php/How_to_setup_your_own_Web_server_with_Yaws), > and I have several other form fields of course (such as the name of the > file). > > All my other code works perfectly with umlauts (German umlauts - äöü, and > also the special character ß) and special characters, but this doesn't at > all. When I enter an umlaut in one of the other fields, it reaches the > server as garbage. I'm guessing it's because of the conversion from binary, > but when I cause an error in the upload handler for the field that contains > the upload, the server's response (to the browser, where the encoding is > wrong at a later point) contains the umlaut just fine, and if I print > representations to the console at any point -- inside the upload handler, > inside my upload action, just before writing to mnesia on the server -- > they are always identical. > > This is the handler -- very simple: > addFileChunk(A, [{head, {"name", _Opts}}, {body, Data}|Res], State ) -> > addFileChunk(A, Res, State#upload{fename = Data}); > > And all that happens in the upload action is that the data for the name > field is extracted from the record and written to mnesia. However, as I > said, it differs from other data extracted from form fields (and written to > mnesia via JSON handlers -- though I don't think _that_ should make a > difference). > > I'm really a little desperate at this point, and would appreciate any help. > > Thanks in advance, > Ole > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV |
From: Jan-Ole E. <es...@gm...> - 2006-09-27 12:09:22
|
Your reply pointed me in the right direction to solving my problem, thanks a lot. However, the solution is rather spooky: All my HTTP headers say the pages are encoded as latin-1. What I needed to do to get this one particular form working, however, was add an accept-charset attribute with a value of _UTF-8_! Does anybody know why this is so? Are the data encoded -- internally -- as UTF-8 in Erlang, and only converted to latin-1 by Yaws? (That would strike me as odd, really.) Confused, but thanks for the pointers, Ole On 27.09.06, Torbjorn Tornkvist wrote: > Can it be a problem with what character set are you using ? > What charset are you using and what does the browser expect ? > > In your HTML 'head' part you should specify the charset used, ex: > > <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> > > > Cheers, Tobbe > > > Jan-Ole Esleben wrote: > > Hello List, > > > > I am fairly new to Erlang and Yaws, and by the way also new to this list, > > and I have a problem that I can't seem to wrap my head around. > > Unfortunately it's a lot of code and I don't know exactly where the error > > happens, so I'll just try to describe it: > > > > I am writing a complex file upload form using the recipe from Trapexit > > (http://wiki.trapexit.org/index.php/How_to_setup_your_own_Web_server_with_Yaws), > > and I have several other form fields of course (such as the name of the > > file). > > > > All my other code works perfectly with umlauts (German umlauts - äöü, and > > also the special character ß) and special characters, but this doesn't at > > all. When I enter an umlaut in one of the other fields, it reaches the > > server as garbage. I'm guessing it's because of the conversion from binary, > > but when I cause an error in the upload handler for the field that contains > > the upload, the server's response (to the browser, where the encoding is > > wrong at a later point) contains the umlaut just fine, and if I print > > representations to the console at any point -- inside the upload handler, > > inside my upload action, just before writing to mnesia on the server -- > > they are always identical. > > > > This is the handler -- very simple: > > addFileChunk(A, [{head, {"name", _Opts}}, {body, Data}|Res], State ) -> > > addFileChunk(A, Res, State#upload{fename = Data}); > > > > And all that happens in the upload action is that the data for the name > > field is extracted from the record and written to mnesia. However, as I > > said, it differs from other data extracted from form fields (and written to > > mnesia via JSON handlers -- though I don't think _that_ should make a > > difference). > > > > I'm really a little desperate at this point, and would appreciate any help. > > > > Thanks in advance, > > Ole > > > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to share your > > opinions on IT & business topics through brief surveys -- and earn cash > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Erlyaws-list mailing list > Erl...@li... > https://lists.sourceforge.net/lists/listinfo/erlyaws-list |
From: Torbjorn T. <to...@to...> - 2006-09-27 13:36:56
|
Jan-Ole Esleben wrote: > Your reply pointed me in the right direction to solving my problem, thanks > a lot. > > However, the solution is rather spooky: All my HTTP headers say the pages > are encoded as latin-1. What I needed to do to get this one particular form > working, however, was add an accept-charset attribute with a value of > _UTF-8_! > > Does anybody know why this is so? Are the data encoded -- internally -- as > UTF-8 in Erlang, and only converted to latin-1 by Yaws? (That would strike > me as odd, really.) No, nothing is encoded internally in any particular way. What do you mean by saying that your pages are in latin-1 ? What do you send as the 'charset' in your pages ? On linux, run: iconv -l to see names of well-known character sets. If you specify iso-8859-1 as shown below then you should get back iso-8859-1 characters from the browser. However, if the browser belives the page is in UTF-8, then you will get UTF-8 characters, and you may have to convert to iso-8859-1 if that is the charset of the strings in your program (and vice versa). There is a library named iconv in jungerl which can do that for you. Cheers, Tobbe > > Confused, but thanks for the pointers, > Ole > > > On 27.09.06, Torbjorn Tornkvist wrote: >> Can it be a problem with what character set are you using ? >> What charset are you using and what does the browser expect ? >> >> In your HTML 'head' part you should specify the charset used, ex: >> >> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> >> >> >> Cheers, Tobbe >> >> >> Jan-Ole Esleben wrote: >>> Hello List, >>> >>> I am fairly new to Erlang and Yaws, and by the way also new to this list, >>> and I have a problem that I can't seem to wrap my head around. >>> Unfortunately it's a lot of code and I don't know exactly where the error >>> happens, so I'll just try to describe it: >>> >>> I am writing a complex file upload form using the recipe from Trapexit >>> (http://wiki.trapexit.org/index.php/How_to_setup_your_own_Web_server_with_Yaws), >>> and I have several other form fields of course (such as the name of the >>> file). >>> >>> All my other code works perfectly with umlauts (German umlauts - äöü, and >>> also the special character ß) and special characters, but this doesn't at >>> all. When I enter an umlaut in one of the other fields, it reaches the >>> server as garbage. I'm guessing it's because of the conversion from binary, >>> but when I cause an error in the upload handler for the field that contains >>> the upload, the server's response (to the browser, where the encoding is >>> wrong at a later point) contains the umlaut just fine, and if I print >>> representations to the console at any point -- inside the upload handler, >>> inside my upload action, just before writing to mnesia on the server -- >>> they are always identical. >>> >>> This is the handler -- very simple: >>> addFileChunk(A, [{head, {"name", _Opts}}, {body, Data}|Res], State ) -> >>> addFileChunk(A, Res, State#upload{fename = Data}); >>> >>> And all that happens in the upload action is that the data for the name >>> field is extracted from the record and written to mnesia. However, as I >>> said, it differs from other data extracted from form fields (and written to >>> mnesia via JSON handlers -- though I don't think _that_ should make a >>> difference). >>> >>> I'm really a little desperate at this point, and would appreciate any help. >>> >>> Thanks in advance, >>> Ole >>> >>> >>> ------------------------------------------------------------------------- >>> Take Surveys. Earn Cash. Influence the Future of IT >>> Join SourceForge.net's Techsay panel and you'll get the chance to share your >>> opinions on IT & business topics through brief surveys -- and earn cash >>> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >> >> ------------------------------------------------------------------------- >> Take Surveys. Earn Cash. Influence the Future of IT >> Join SourceForge.net's Techsay panel and you'll get the chance to share your >> opinions on IT & business topics through brief surveys -- and earn cash >> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV >> _______________________________________________ >> Erlyaws-list mailing list >> Erl...@li... >> https://lists.sourceforge.net/lists/listinfo/erlyaws-list > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV |