因我是用windows下用c开发PHP扩展时,
想在C的函数内直接打印php_printf某字符串(其中含有汉字字符),
但在PHP调用这个函数时,看到的时汉字乱码。PHP页面用的是utf-8编码格式。
代码如下:
hello.c(只是被PHP调用函数,注意不用返回字符串,直接用php_printf打印。)
PHP_FUNCTION(hello)
{
char *hello="";
int len = 0;
char *ret = "";
hello = "中国hello world";
len = strlen(hello);
ret=(char*)emalloc(len);
memcpy(ret, hello, len+1);
php_printf("%s",ret);
RETURN_LONG(0);
}
hello.php
无标题文档如果把浏览器调成GB2312编码时,看到PHP页面的汉字字符串显示就正常了。
所以我认为C中php_printf时是GB2312编码,不知道是不是这个编码格式。
请高手帮我改改,尽量详细些,因我多年没用C了。
谢谢!