我的页面经常显示像Ã,Ã,Ã,Ã,Ã,代替普通字符的东西.
我使用utf8作为头页和MySQL编码.这是怎么发生的?
我在XHTML网页中有Javascript传递UTF-8编码的字符串.它需要继续通过UTF-8版本,并对其进行解码.如何解码UTF-8字符串进行显示?
<script type="text/javascript">
// <![CDATA[
function updateUser(usernameSent){
var usernameReceived = usernameSent; // Current value: Größe
var usernameDecoded = usernameReceived; // Decode to: Größe
var html2id = '';
html2id += 'Encoded: ' + usernameReceived + '<br />Decoded: ' + usernameDecoded;
document.getElementById('userId').innerHTML = html2id;
}
// ]]>
</script>
Run Code Online (Sandbox Code Playgroud) 我在Java中的字符串变量中具有以下值,其中UTF-8字符编码如下所示
Dodd\u2013Frank
Run Code Online (Sandbox Code Playgroud)
代替
Dodd–Frank
Run Code Online (Sandbox Code Playgroud)
(假设我无法控制如何将此值分配给此字符串变量)
现在我如何正确转换(编码)它并将其存储回String变量?
我找到了以下代码
Charset.forName("UTF-8").encode(str);
Run Code Online (Sandbox Code Playgroud)
但这会返回一个ByteBuffer,但我想String回来.
编辑:
更多其他信息.
当我用System.out.println(str);我得到
Dodd\u2013Frank
Run Code Online (Sandbox Code Playgroud)
我不确定什么是正确的术语(UTF-8或unicode).请原谅我.
如何使用angular JS在文本中解码HTML实体.
我有字符串
""12.10 On-Going Submission of ""Made Up"" Samples.""
Run Code Online (Sandbox Code Playgroud)
我需要一种使用Angular JS解码的方法.我在这里找到了一种使用javascript的方法,但我相信它不适用于Angular.需要在UI上找回原始字符串,看起来像
""12.10 On-Going Submission of ""Made Up"" Samples.""
Run Code Online (Sandbox Code Playgroud) 我刚刚发现Node(已测试:v0.8.23,当前git:v0.11.3-pre)忽略其缓冲区处理中的任何解码错误,用'\ufffd'(Unicode REPLACEMENT CHARACTER)静默替换任何非utf8字符,而不是抛出异常非utf8输入.因此,fs.readFile,process.stdin.setEncoding和朋友面膜类大对你坏输入错误的.
示例哪个没有失败,但确实应该:
> notValidUTF8 = new Buffer([ 128 ], 'binary')
<Buffer 80>
> decodedAsUTF8 = notValidUTF8.toString('utf8') // no exception thrown here!
'?'
> decodedAsUTF8 === '\ufffd'
true
Run Code Online (Sandbox Code Playgroud)
'\ufffd'是一个完全有效的字符,可以出现在合法的utf8中(作为序列ef bf bd),因此基于在结果中显示的错误处理中的猴子补丁是非常重要的.
进一步挖掘,看起来这源于节点只是推迟到v8的字符串,而那些反过来具有上述行为,v8没有任何外部世界充满外来编码数据.
是否有节点模块或其他让我捕获utf-8解码错误,最好是关于输入字符串或缓冲区中发现错误的位置的上下文?
我正在尝试从http://api.freebase.com/api/trans/raw/m/0h47中检索数据
你可以在文字中看到有这样的歌: /æl?d???ri?/.
当我尝试从页面获取源代码时,我会收到类似唱歌的文字等ú.
到目前为止,我已尝试使用以下代码:
urlConnection.setRequestProperty("Accept-Charset", "UTF-8");
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我的整个代码:
URL url = null;
URLConnection urlConn = null;
DataInputStream input = null;
try {
url = new URL("http://api.freebase.com/api/trans/raw/m/0h47");
} catch (MalformedURLException e) {e.printStackTrace();}
try {
urlConn = url.openConnection();
} catch (IOException e) { e.printStackTrace(); }
urlConn.setRequestProperty("Accept-Charset", "UTF-8");
urlConn.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
urlConn.setDoInput(true);
urlConn.setUseCaches(false);
StringBuffer strBseznam = new StringBuffer();
if (strBseznam.length() > 0)
strBseznam.deleteCharAt(strBseznam.length() - 1);
try {
input = new DataInputStream(urlConn.getInputStream());
} catch (IOException e) …Run Code Online (Sandbox Code Playgroud) 我对utf8_decode()的行为感到困惑,只是想稍微澄清一下.我希望没关系.
这是一个简单的HTML表单,我用来捕获一些文本并将其保存到我的MySQL数据库(使用utf8_general_ci排序规则):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<form action="update.php" method="post" accept-charset="utf-8">
<p>
Title: <input type="text" name="title" id="title" accept-charset="utf-8" size="75" value="" />
</p>
<p>
<input type="submit" name="submit" value="Submit" />
</p>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我已经在适当的地方使用charset = utf8进行了编码.我们接受包含变音符号的文本(例如,ñ,ó等).最后,我们在所有文本输入上运行一个小脚本来检查变音符号并将它们更改为HTML实体(例如,ñ变成ñ).
当我的脚本收到输入时,我首先必须执行utf8_decode($ input),然后运行我的小脚本来检查并根据需要更改变音符号.一切正常.我很好奇为什么我必须在这个输入上运行解码.据我所知,utf8_decode将以UTF-8编码的字符串转换为ISO-8859-1.我想确保 - 即使一切正常(或者我认为) - 我不会做一些事情,以后会赶上我.例如,我发送的ISO-8859-1编码字符存储在我的数据库中,该数据库设置为存储/提供UTF-8字符.我应该在我的diacritics-to-entities脚本返回的字符串上运行utf8_encode()吗?例如:
$string = utf8_decode($string);
$search = explode(",","À,È,Ì,Ò,Ù,à,è,ì,ò,ù,Á,É,Í,Ó,Ú,Ý,á,é,í,ó,ú,ý,Â,Ê,Î,Ô,Û,â,ê,î,ô,û,Ã,Ñ,Õ,ã,ñ,õ,Ä,Ë,Ï,Ö,Ü,Ÿ,ä,ë,ï,ö,ü,ÿ,Å,å,Æ,æ,ß,Þ,þ,ç,Ç,Œ,œ,Ð,ð,Ø,ø,§,Š,š,µ,¢,£,¥,€,¤,ƒ,¡,¿");
$replace = explode(",","À,È,Ì,Ò,Ù,à,è,ì,ò,ù,Á,É,Í,Ó,Ú,Ý,á,é,í,ó,ú,ý,Â,Ê,Î,Ô,Û,â,ê,î,ô,û,Ã,Ntilde;,Õ,ã,ñ,õ,Ä,Ë,Ï,Ö,Ü,Ÿ,ä,ë,ï,ö,ü,ÿ,Å,å,Æ,æ,ß,Þ,þ,ç,Ç,Œ,œ,Ð,ð,Ø,ø,§,Š,š,µ¢,£,¥,€,¤,ƒ,¡,¿");
$new_input = str_replace($search, $replace, $string);
return utf8_encode($new_input); // right now i just return $new_input.
Run Code Online (Sandbox Code Playgroud)
感谢任何人对此提供的任何见解.
打算编写一个简单的procmail收件人,如果在主题中找到"ABC Store:New Order"文本,它将转发邮件.
:0
* ^(To|From).*abc@cdefgh.com
* ^Subject:.*ABC Store: New Order*
{
Run Code Online (Sandbox Code Playgroud)
不幸的是,来自邮件服务器的邮件消息中的主题字段是MIME编码字语法.
主题:=?UTF-8?B?QUJDIFN0b3JlOiBOZXcgT3JkZXI =?=
上面的主题是utf-8 ISO-8859-1 charset,所以想知道是否有任何机制/脚本/实用程序来解析它并转换为字符串格式,以便我可以应用我的procmail过滤器.
所以我知道如何将String转换为utf8格式
for character in strings.utf8 {
// for example A will converted to 65
var utf8Value = character
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了指南但无法找到如何将由整数表示的Unicode代码点转换为String.例如:将65转换为A.我已经尝试使用"\ u"+ utf8Value但它仍然失败.
有没有办法做到这一点?
我正在尝试将一些UTF-8字符输出到JSON文件.
当我保存文件时,它们的编写方式如下:
{"some_key":"Enviar invitaci\u00f3n privada"}
以上内容有效且有效.当我加载文件并打印'some_key'时,它会在终端显示"Enviartunitaciónprivada".
反正有没有用"some_key"作为编码版本编写JSON文件,像这样?
{"some_key":"Enviartinvitaciónprivada"}