HTML编码UTF-8转为GBK

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML编码UTF-8转为GBK相关的知识,希望对你有一定的参考价值。

【烦请专业人士回答】本人不精通html编写。因需现学用DW CC2017做了一个HTML5的脱机网页,但上传时被告知需要用GBK编码(我用的UTF-8),我尝试了DW中的转码功能,但很不幸提示很多东西变成“?”,打开网页一片空白。当我再次转换回来时,也是一片空白(还好之前做了备份)。所以烦请大神解释一下GBK与UTF8编码区别以及如何将GBK转化为UTF-8。分不是问题,烦请答题者不要简单的复制粘贴。如果我操作成功,会采纳的。

参考技术A 把网页头部(<head></head>)中这段代码

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

改为:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />追问

你好,并不能解决问题。

参考技术B

    代码里的“utf-8”修改为“gb2312”;

    网页文件格式更改为“ANSI”格式,不要写默认的“utf-8”;

Utf8编码转换问题 Delphi

怎样把 ( 你好 ) 这样的编码转换成中文

要求:给出Delphi7的具体代码...

//将UTF-8编码转为ANSI编码
function UTF8ToAnsiString(utf8str:string; CodePage: integer):AnsiString;
var
i:integer;
buffer:widestring;
ch,c1,c2:byte;
begin
result:=\'\';
i:=1;
while i<=Length(utf8str) do
begin
ch:=byte(utf8str[i]);
setlength(buffer,length(buffer)+1);
if (ch and $80)=0 then //1-byte
buffer[length(buffer)]:=widechar(ch)
else begin
if (ch AND $E0) = $C0 then
begin // 2-byte
inc(i);
c1 := byte(utf8str[i]);
buffer[length(buffer)]:=widechar((word(ch AND $1F) SHL 6) OR (c1 AND $3F));
end
else
begin // 3-byte
inc(i);
c1 := byte(utf8str[i]);
inc(i);
c2 := byte(utf8str[i]);
buffer[length(buffer)]:=widechar((word(ch AND $0F) SHL 12) OR (word(c1 AND $3F) SHL 6) OR (c2 AND $3F));
end;
end;
inc(i);
end; //while
i := WideCharToMultiByte(codePage,WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,@buffer[1], -1, nil, 0, nil, nil);
if i>1 then
begin
SetLength(Result, i-1);
WideCharToMultiByte(codePage,WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,@buffer[1], -1, @Result[1], i-1, nil, nil);
end;
end;这是我百度博客上的技术文,你可以去看一下,有问题可以去那里留言……http://hi.baidu.com/ray108/blog/item/be69e4423c9df3189313c6a8.html
参考技术A 类型转换失败。 GCC: warning: initialization from incompatible pointer type G++: error: cannot convert 'int (*)[5]' to 'int**' in initialization C/C++语言不直接支持多维数组,所谓的多维数组是嵌套数组,即数组的数组。在引用这种数组时,元素必须是确定的——当元素作为数组,本身的长度和元素的类型也必须是确定的。这就导致数组退化为指针时,只限第一维的长度可以不确定(LS的“a是一个数组名,也就是一个const指针”——这是一个流传比较广的错误说法——上述理由是原因之一;有兴趣的可以去CSDN找一下“数组名是不是右值”的讨论)。a对应的指针应为int(*)[5]类型,这里定义int(*p)[5]=a;就没问题了。C语言类型检查规则比较松,所以int**转换仅警告。C++类型检查规则比较严格,在这种情况下禁止转换,产生编译错误。 LZ你确定VS下编译的是.c文件而不是.cpp文件? 参考技术B 用过滤器啦

以上是关于HTML编码UTF-8转为GBK的主要内容,如果未能解决你的问题,请参考以下文章

GBK与UTF-8编码错误转换后,无法再正确恢复

字符编码转换

java如何把string转为utf-8

Java中如何将gbk装换为ansi

Java中如何将gbk装换为ansi

utf-8编码的页面如何转成gbk编码的页面(急)