You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2007/02/27 02:36:19 UTC

DO NOT REPLY [Bug 38467] - Apache unable to output wide characters through cgi (C++)

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG�
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=38467>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND�
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=38467





------- Additional Comments From basant.kukreja@sun.com  2007-02-26 17:36 -------
I was able to reproduce the issue. I think "apache" behavior is correct.
Here is my experiment :

#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <unistd.h>
using namespace std;


int main()
{
	setlocale(LC_ALL, "");
	wcout << L"Content-Type: text/html; charset=UTF-8" << endl << endl;	

	wcout << L"aaaa ÿ ÿ ÿ ñ" << endl;
    system("locale");
	return 0;
}

I modified your sample a bit and added system call to figure out what was the
locale.
I got the output similar to you 

HTTP/1.1 200 OK
Date: Tue, 27 Feb 2007 00:59:43 GMT
Server: Apache/2.2.5-dev (Unix) mod_ssl/2.2.5-dev OpenSSL/0.9.8a DAV/2 SVN/1.4.3
mod_perl/2.0.4-dev Perl/v5.8.8
Content-Length: 293
Content-Type: text/html; charset=UTF-8

environ = 0xbff5613c
write error
aaaa ? ? ? ?
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

Since the locale is set to POSIX so C++ application prints ?.

Now set the locale to en_US for cgi-bin and restart apache.

<Directory "/disk/apache/apache2/cgi-bin">
    SetEnv LANG "en_US"
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

I got the right output :

HTTP/1.1 200 OK
Date: Tue, 27 Feb 2007 01:05:44 GMT
Server: Apache/2.2.5-dev (Unix) mod_ssl/2.2.5-dev OpenSSL/0.9.8a DAV/2 SVN/1.4.3
mod_perl/2.0.4-dev Perl/v5.8.8
Content-Length: 265
Content-Type: text/html; charset=UTF-8

aaaa � � � �
LANG=en_US
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES="en_US"
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=


If you setup the locale to POSIX on shell and run the cgi script,
you will see the same output (question marks)

Charles, can you confirm the issue. I will wait for your response before
making the bug as invalid.

I think the bug is invalid and if there is a bug then it is in C++ runtime.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org