我正在使用IDHTTP从事Delphi XE5和从服务器获取XML.获取XML工作正常,但有一些破碎的字符.角色是'•'(子弹点).其他人都很好,但要点已经破裂.
我创建了IDHTTP,如下所示:
idhttps := TIdHTTP.Create();
idhttps.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
idhttps.IOHandler.DefStringEncoding := IndyTextEncoding(TEncoding.UTF8);
idhttps.HandleRedirects := True;
idhttps.ConnectTimeout := 5000;
idhttps.Request.USERNAME := 'USERNAME';
idhttps.Request.PASSWORD := 'PASSWORD';
idhttps.Request.BasicAuthentication := True;
idhttps.Request.Accept := 'text/xml';
Run Code Online (Sandbox Code Playgroud)
然后得到如下的xml:
SS := TStringStream.Create('', TEncoding.UTF8);
try
self.GetIdHTTPForLexicomp.Get(URL, SS);
XMLDoc := TXMLDocument.Create(nil);
XMLDoc.LoadFromStream(SS, TXMLEncodingType.xetUTF_8Like);
finally
SS.Free;
end;
Run Code Online (Sandbox Code Playgroud)
在XML中,项目符号点如下所示:
?过敏反应/过敏反应:可能引起过敏反应,
XML标题如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Run Code Online (Sandbox Code Playgroud)
我该怎么检查?
更新:我添加了XML代码段.它需要一个XSL文件用于样式,但在这种情况下,我认为这不是问题.'?' 是破碎的人物.
<?xml version="1.0" standalone="yes"?>
<ns2:monogragh>
<monograghFields>
<field fieldId="234837" fieldTypeCode="war" created="2005-04-07T17:28:33Z" modified="2014-10-02T11:32:57Z" sectionId="0">
<fieldName>Warnings/Precautions</fieldName>
<content>
<div id="war" class="block">
<p style="text-indent:-2em;margin-left:2em;text-align:justify;">
<b>
<i>Concerns related to adverse …Run Code Online (Sandbox Code Playgroud) 我必须使用Base64的加密算法,但是当我在线研究时,我发现论坛说它是一种编码算法.这让我很困惑.:(
Base64是加密或编码算法吗?我们如何区分这两者,除了一个是公开可辨认而另一个需要关键的事实?
我一直能够使用键盘快捷键[Shift] + [Cmd] + [p] 编码 Sublime Text 2中的html特殊字符,然后HTML:编码特殊字符.由于某些未知原因,当我键入键盘快捷键时后者不再可用.是否需要安装特定的软件包才能应用编码?
谢谢
我想在QLineEdit字段中使用放大镜(U + 1F50E) Unicode符号.我想出了如何使用QChar使用16位unicode符号但是我不知道如何使用由5个十六进制数字表示的unicode符号.
QLineEdit edit = new QLineEdit();
edit.setFont(QFont("Segoe UI Symbol"));
edit.setText(????);
Run Code Online (Sandbox Code Playgroud)
到目前为止,我尝试过:
edit.setText(QString::fromUtf8("\U0001F50E"));
Run Code Online (Sandbox Code Playgroud)
哪给了编译器警告:
warning C4566: character represented by universal-character-name '\UD83DDD0E' cannot be represented in the current code page
Run Code Online (Sandbox Code Playgroud)
并显示为:??
我也尝试过:
edit.setText(QString("\U0001F50E"));
Run Code Online (Sandbox Code Playgroud)
哪给了编译器警告:
warning C4566: character represented by universal-character-name '\UD83DDD0E' cannot be represented in the current code page (1252)
Run Code Online (Sandbox Code Playgroud)
并且还给了:??
我尝试了你可以用QChar尝试的一切.我也尝试切换我的CPP文件的编码并复制和粘贴符号,这不起作用.
在Delphi XE7中,我们使用以下命令将一些值从字符串转换为字节,从字节转换为字符串:
MyBytes := TEncoding.Unicode.GetBytes(MyString);
Run Code Online (Sandbox Code Playgroud)
和
MyString := TEncoding.Unicode.GetString(MyBytes);
Run Code Online (Sandbox Code Playgroud)
我想编写自己的函数,在Delphi-2007上得到相同的值。我真的不熟悉chars编码,我想我应该WideString在Delphi-2007中使用type (是吗?)
function StringToBytes(AValue : WideString) : TBytes;
begin
Result := //...
end;
function BytesToString(AValue : TBytes) : WideString;
begin
Result := //...
end;
Run Code Online (Sandbox Code Playgroud)
有人可以帮我编写这两个功能吗?
突然在我的控制台中,它开始出错,并且它已经运行好几天没有任何改变.请指教.
/node_modules/mysql/lib/protocol/Parser.js:82
throw err;
^
TypeError: Not a buffer
at TypeError (native)
at pbkdf2 (crypto.js:607:20)
at Object.exports.pbkdf2Sync (crypto.js:590:10)
crypto: require("crypto"),
encrypt: function(password) {
var salt = this.getSalt(password, this.constructor.GUID);
return {salt: salt, password: this.getEncrypted(password, salt)};
},
getSalt: function(password, GUID) {
return this.crypto.createHash("sha256").update(password + "|" + GUID).digest("hex")
},
getEncrypted: function(password, salt) {
return this.crypto.pbkdf2Sync(password, salt, 4096, 512, "sha256").toString("hex");
},
verifyPassword: function(user, password) { //var salt = this.getSalt("test@test.com|" + this.constructor.GUID); console.log("salt: " + salt); console.log("password: " + this.getPassword("HUG2015", salt));
return this.crypto.pbkdf2Sync(password, user.salt, 4096, …Run Code Online (Sandbox Code Playgroud) 最近我一直在搞乱bittorrent协议.我没有看到文件编码的重点,除了让我头疼解析它们?它有什么优势?为什么不使用xml?
/讽刺
我正在使用一个名为Guess Language的python库:http://pypi.python.org/pypi/guess-language/0.1
"justwords"是一个带有unicode文本的字符串.我把它粘在包里,但它总是返回英文,即使网页是日文的.有谁知道为什么?我没有正确编码吗?
§ç©ºéå
¶ä»æ¡å°±æ²æéç¨®å¾ é¤ï¼æä»¥ä¾é裡ç¶ç
éäºï¼åæ¤ç°å¢æ°£æ°¹³åèµ·ä¾åªè½ç®âå¾å¥½âé常好âåå ¶æ¯è¦é»é¤ï¼é¨ä¾¿é»çé»ã飲æãä¸ææ²»çåä¸å 便å®ï¼æ¯æ´è¥ç äºï¼æ³æ³é裡以å°é»ãæ¯è§ä¾èªªä¹è©²æpremiumï¼åªæ±é¤é»å¥½å就好äºã<br /><br />é¦åç¾ï¼æä»¥å°±é»å宿´ç æ£è¦åä¸ä¸å
ä¸ç å¥é¤å§ï¼å
justwords = justwords.encode('utf-8')
true_lang = str(guess_language.guessLanguage(justwords))
print true_lang
Run Code Online (Sandbox Code Playgroud)
编辑:谢谢你的帮助.这是问题的更新.
我试图"猜测"这个语言:http://feeds.feedburner.com/nchild
基本上,在Python中,我得到了htmlSource.然后,我使用BeautifulSoup剥离标签.然后,我将它传递给图书馆以获取语言.如果我不进行编码('utf-8'),则会出现ASCII错误.所以,这是必须的.
soup = BeautifulStoneSoup(htmlSource)
justwords = ''.join(soup.findAll(text=True))
justwords = justwords.encode('utf-8')
true_lang = str(guess_language.guessLanguage(justwords))
Run Code Online (Sandbox Code Playgroud) 我有几个字符无法正确识别.人物如:
º á ó (etc..)
这意味着字符编码不是utf-8对吗?那么,你能告诉我它可以是什么字符编码吗?
我正在做一个
System.Text.Encoding.UTF8.GetBytes(s)
Run Code Online (Sandbox Code Playgroud)
在使用.NET 2.0框架的两个不同程序(一个控制台,一个Web)中的字符串上,编码与两者不同.对于字符串"everything",我得到相同的结果,但对于字符串"OnI3UwUc",我得到两个不同的结果.
对于"OnI3UwUc",6f6e693375777563对于另一个程序中的"OnI3UwUc",我得到4f63493355775563.
在里面
我试着把它写成与我的一些经典ASP代码一样操作:
Dim crypt : Set crypt = CreateObject("Chilkat.Crypt2")
crypt.UnlockComponent("TXTECHCrypt_6X6EnMdFNRCe")
crypt.HashAlgorithm = "sha1"
crypt.CryptAlgorithm = "aes"
crypt.CipherMode = "ecb"
crypt.EncodingMode = "hex"
crypt.SetEncodedKey "100202330405560608790A8B0C9D0EAF","hex"
Run Code Online (Sandbox Code Playgroud) encoding ×10
unicode ×3
delphi ×2
string ×2
base64 ×1
c# ×1
c++ ×1
cryptography ×1
delphi-2007 ×1
encryption ×1
idhttp ×1
javascript ×1
nlp ×1
node.js ×1
python ×1
qt ×1
qt4 ×1
sublimetext ×1
sublimetext2 ×1
xml ×1