輸入為帶有json格式的文本,輸入正常文本。
//20130625 by zhangyl
private string JsonToUnicode(string input)
{
input = input.Replace("\\\"", "\"");
input = input.Replace("\\/", "/");
string result;
if (!input.Contains("\\u"))
{
result = input;
}
else
{
StringBuilder stringBuilder = new StringBuilder();
if (input.IndexOf("\\u") > 0)
{
stringBuilder.Append(input.Substring(0, input.IndexOf("\\u")));
input = input.Substring(input.IndexOf("\\u"));
}
if (!string.IsNullOrEmpty(input))
{
string[] array = input.Split(new string[]
{
"\\u"
}, StringSplitOptions.RemoveEmptyEntries);
string[] array2 = array;
for (int i = 0; i < array2.Length; i++)
{
string text = array2[i];
if (text.Length > 4)
{
string arg = text.Substring(4);
stringBuilder.Append((char)int.Parse(text.Substring(0, 4), NumberStyles.HexNumber) + arg);
}
else
{
if (text.Length == 4)
{
stringBuilder.Append((char)int.Parse(text, NumberStyles.HexNumber));
}
else
{
if (text.Length < 4 && text.Length > 0)
{
stringBuilder.Append(text);
}
}
}
}
}
result = stringBuilder.ToString();
}
return result;
}
怎麼我的顯示不了,結果是這樣:$d=[{"_id":{"$id":"4fda7d42741d727c14000000"},"name":"鍐滃か灞辨硥","bc":"123456","pic":"d: pic\water.jpg","aid":"232fd4df3"}] $c=[{"_id":{"$id":"4fdaa7f3741d725816000000"},"bc":"012345678","name":"缁磋揪绾稿肪","cls":{"id":"125","name":"镞ョ敤鍝?"},"std":{"name":"寮犳暟","val":"10"}}]用ie浏覽器也不行,怎麼回事?求解~~
loads取出後是unicode?我懷疑你用的是python3
通常python2時所有IO讀寫都是byte方式。也就是編碼後的。java也是這樣子。只有python3還有某些特定的模塊才會自動將byte重新轉換成unicode
在python2裡的確可以使用s.decode('gbk','ignore')之類的變成unicode。不過在python3裡應該是這樣子, s.encode('gbk','ignore')這樣就變成了byte
如果你喜歡 utf-8,可以s.encode(‘utf-8','ignore')和s.decode(‘utf-8','ignore')
多試試就可以了。 console和文件只支持編碼過的字符串。