我正在设置一个新服务器,并希望在我的Web应用程序中完全支持UTF-8.我过去曾在现有的服务器上尝试过此操作,但最终似乎不得不回归ISO-8859-1.
我在哪里需要设置编码/字符集?我知道我需要配置Apache,MySQL和PHP来执行此操作 - 是否有一些我可以遵循的标准清单,或者可能是在出现不匹配的地方进行故障排除?
这适用于运行MySQL 5,PHP,5和Apache 2的新Linux服务器.
没有BOM的 UTF-8和UTF-8有什么不同?哪个更好?
我以前从未见过 实际使用过的<base>
HTML标签.它的使用存在缺陷,这意味着我应该避免它吗?
事实上我从来没有注意到它在现代生产网站(或任何网站)上的使用让我对它持怀疑态度,尽管看起来它可能有用于简化我网站链接的有用应用程序.
使用基本标签几周后,我最终找到了使用基本标签的一些主要问题,这使得它比最初出现时更不可取.从本质上讲,变化href='#topic'
和href=''
基本标签下是非常有它们的默认行为不兼容,并可以从默认行为,这种变化很容易使第三方库的控制范围之外的非常不可靠的 以意想不到的方式,因为它们在逻辑上依赖于默认行为.通常,这些更改是微妙的,并且在处理大型代码库时会导致不那么明显的问题.我已经创建了一个回答,详细说明了我在下面遇到的问题.因此,在您进行广泛部署之前,请自行测试链接结果<base>
,这是我的新建议!
我有一个遗留应用程序只是开始行为不端,无论出于何种原因我不确定.它会生成一堆HTML,并由ActivePDF转换为PDF报告.
这个过程是这样的:
在那个混乱的地方,HTML模板(
s)中的不间断空格编码为ISO-8859-1,因此在浏览器(FireFox)中查看文档时它们会错误地显示为"Â"字符.ActivePDF会对这些非UTF8字符产生影响.
我的问题:既然我不知道问题出在哪里,也没有时间去研究它,是否有一种简单的方法可以重新编码或找到并替换坏字符?我已经尝试通过我扔在一起的这个小功能发送它,但它把它变成了gobbledegook并没有改变任何东西.
Private Shared Function ConvertToUTF8(ByVal html As String) As String
Dim isoEncoding As Encoding = Encoding.GetEncoding("iso-8859-1")
Dim source As Byte() = isoEncoding.GetBytes(html)
Return Encoding.UTF8.GetString(Encoding.Convert(isoEncoding, Encoding.UTF8, source))
End Function
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
编辑:
我现在正在接受这个,虽然它似乎不是一个好的解决方案:
Private Shared Function ReplaceNonASCIIChars(ByVal html As String) As String
Return Regex.Replace(html, "[^\u0000-\u007F]", " ")
End Function
Run Code Online (Sandbox Code Playgroud) 每当我使用了德国元音在过去一个HTML文件时,总是我被取而代之ä
,ö
根据等这个表.
我当时不知道编码,也没想过.
我只是"知道",当我只想用ä
,ö
等等.相反,在其他国家的许多计算机将无法正确显示变音.
当我通过放入<meta charset="utf-8">
标题将UTF-8编码的HTML文件的字符集设置为UTF-8时,是否仍然需要替换ä
by ä
,ö
by ö
等等?
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ÄÖÜäöüß</title>
</head>
<body>
ÄÖÜäöüß
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
当我将其保存在我的机器上的UTF-8编码的HTML文件中并在浏览器中查看时,所有的变音符都会正确显示.
但是我在德国,我机器上的所有东西都是德语,所以当然我的机器能够正确显示德国变形金刚.
我阅读了Joel的绝对最低每个软件开发人员,绝对必须知道Unicode和字符集(没有借口!),但这种编码对我来说是全新的.
根据我对编码,UTF-8和设置字符集的理解,我怀疑<meta charset="utf-8">
在UTF-8编码的HTML文件中设置意味着我不再需要使用ä
等等.
但我找不到一个明确说明的来源.
我在验证时为我的网站收到此错误.
Error: A charset attribute on a meta element found after the first 512 bytes.
Run Code Online (Sandbox Code Playgroud)
这是导致此问题的代码:
<!DOCTYPE html>
<html class="not-ie no-js" lang="en-US" prefix="og: http://ogp.me/ns#">
<head>
<link rel="stylesheet" type="text/css" href="http://mywebsite.com.au/wp-content/cache/minify/000000/TY3RDsIgDEV_SFb5pAqVgLDWFTb79y6bWXw6ybk3OR4KdcHwgsZxVFLYckzUL97uoN0q7QyqUN6DFpueOAd78Gdqef4ta47EruifwhEzS0WjZfWH97CJSw1FcjdHqOYSc6rkdqdnaU_LdRHW7k79BQ.css" media="all" />
<script type="text/javascript" src="http://mywebsite.com.au/wp-content/cache/minify/000000/hY7RDsIgDEV_aFCXmCzxb5DVDQSKtDj164W5dx977rltV5F8ATDevPRCtAQ02bG2FHcGwV0Z_KNiecOoJz0eg44uac_DCTxDpBlLcp-ibWWh-KNPNyMpz10dztBWRkyiCuaw14exsSTGirpRiWoCl2yoM3JvH2d68l9mW1wWbpJHycbe-0s1tHDLS6GVvg.js"></script>
<script type="text/javascript" src="http://mywebsite.com.au/wp-content/cache/minify/000000/M9YvzdTPKixNLarUK83UK89MSU8t0cvNzAMA.js"></script>
<script type="text/javascript" src="http://mywebsite.com.au/wp-content/cache/minify/000000/ZY5BDsIwDAQ_RNIWxEt4gUkMuKRxsJPS8HpacahQLnuYnZW270btFAO6TDN9xED0BpcsYH6URe1E8dBvoqAmjn4H46ugVIugFO9msKemukF09cqLTeCef42rLqCFEJqNTiD5krcI5FEagZQzJ2z46EC4rMf3BoonTgEqyjw0g8zFPS5vSrieP9rzLriimacv.js"></script>
<meta charset="UTF-8">
Run Code Online (Sandbox Code Playgroud) 我不知道应该如何标题这个问题,但希望我的朋友们能够理解这个问题并帮助我:)
我想使用JavaScript 函数以阿拉伯语显示日志消息alert()
,我为此编写代码:
alert('???? ??? ????????');
Run Code Online (Sandbox Code Playgroud)
意思是
alert('Enter opening price');
Run Code Online (Sandbox Code Playgroud)
但是当我保存.js文件时Dreamweaver说
如果我运行脚本浏览器说
此页面包含
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)
我在阿拉伯语中使用了很多文本,工作正常.
现在我如何使用不同语言的警报?
为什么我们需要像这样在HTML头中包含元内容类型标记?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
Run Code Online (Sandbox Code Playgroud) 我用中文创建了网页.当我使用Google Chrome浏览器查看该页面时,所有中文字符都已损坏.我是否必须在HTML页面中添加内容?
我的HTML页面使用<meta charset="windows-1252">
.
UTF-8
推荐,为什么?UTF-8
并用一些数学符号得到了问号.EG:x应更改为×以便正确显示.我尝试了CpConverter
但它没有很好地转换所有符号.有没有更好的方法来转换许多文件?
html ×8
utf-8 ×4
meta-tags ×3
apache ×1
base-tag ×1
content-type ×1
contextpath ×1
encoding ×1
fonts ×1
html5 ×1
iso-8859-1 ×1
javascript ×1
linux ×1
mysql ×1
php ×1
unicode ×1
vb.net ×1