{"id":2500,"date":"2015-05-20T21:46:44","date_gmt":"2015-05-20T13:46:44","guid":{"rendered":"http:\/\/blog.qdac.cc\/?p=2500"},"modified":"2015-05-20T21:46:44","modified_gmt":"2015-05-20T13:46:44","slug":"delphi-c-builder-%e4%b8%ad%e5%ad%97%e7%ac%a6%e4%b8%b2%e7%b1%bb%e5%9e%8b%e8%af%a6%e8%a7%a3","status":"publish","type":"post","link":"https:\/\/blog.qdac.cc\/?p=2500","title":{"rendered":"Delphi \/ C++ Builder \u4e2d\u5b57\u7b26\u4e32\u7c7b\u578b\u8be6\u89e3"},"content":{"rendered":"<p>\u5b57\u7b26\u4e32\u5728\u7f16\u7a0b\u4e2d\u662f\u4e00\u4e2a\u5e38\u89c1\u7684\u7c7b\u578b\uff0c\u4f46\u5de6\u4e00\u4e2a\u7c7b\u578b\uff0c\u53f3\u4e00\u4e2a\u7c7b\u578b\u53ef\u80fd\u628a\u8bb8\u591a\u4eba\u90fd\u5f04\u8ff7\u7cca\u4e86\u3002\u6211\u5199\u8fd9\u7bc7\u6587\u7ae0\uff0c\u8bd5\u56fe\u7ed9\u5927\u5bb6\u7406\u6e05 Delphi \/ C++ Builder \u4e2d\u7684\u5b57\u7b26\u4e32\u7c7b\u578b\u3002\u5173\u4e8e\u8fd9\u4e9b\u5b57\u7b26\u4e32\u7c7b\u578b\u7684\u5386\u53f2\uff0c\u6211\u4eec\u5c31\u4e0d\u518d\u5570\u55e6\uff0c\u5386\u53f2\u5c31\u662f\u5386\u53f2\uff0c\u73b0\u5728\u6211\u4eec\u9762\u5bf9\u73b0\u5b9e\u3002<\/p>\n<ul>\n<li>String \u7c7b\u578b<\/li>\n<\/ul>\n<p>String \u7c7b\u578b\u5728 Delphi \/ C++ Builder \u4e0d\u540c\u7684\u7248\u672c\u4e2d\uff0c\u5bf9\u5e94\u4e8e\u4e0d\u540c\u7684\u7c7b\u578b\uff0c\u5b83\u4eec\u7684\u5206\u9694\u7ebf\u662f Delphi \/ C++ Builder 2009\u3002\u5728 2009 \u4ee5\u524d\uff0cString \u7c7b\u578b\u6620\u5c04\u5230\u4e86 AnsiString\uff0c\u800c\u5728 \u2265 2009 \u7248\u672c\u53ca\u4ee5\u540e\uff0cString \u7c7b\u578b\u6620\u5c04\u5230\u4e86 UnicodeString\u3002<\/p>\n<ul>\n<li>ShortString \u7c7b\u578b<\/li>\n<\/ul>\n<p>ShortString \u662f Delphi \u4e2d\u7684\u4e00\u4e2a\u77ed\u5b57\u7b26\u4e32\u7c7b\u578b\uff0c\u6700\u5927\u957f\u5ea6\u4e3a 255 \u4e2a\u5b57\u7b26\u3002\u5b83\u7684\u7f16\u7801\u65b9\u5f0f\u548c\u4e0b\u9762\u7684 AnsiString \u4e00\u81f4\u3002<\/p>\n<ul>\n<li>AnsiString \u7c7b\u578b<\/li>\n<\/ul>\n<p>AnsiString \u7c7b\u578b\u662f\u4e00\u79cd\u57fa\u4e8e\u5f15\u7528\u8ba1\u6570\u7684\u5b57\u7b26\u4e32\u7c7b\u578b\uff0c\u5b83\u5b9e\u9645\u662f\u4ee3\u7801\u9875\u4e3a CP_ACP \uff080\uff09 \u7684\u5b57\u7b26\u4e32\u7c7b\u578b\u3002\u5728\u4f20\u9012\u53c2\u6570\u65f6\uff0c\u76f4\u63a5\u589e\u52a0\u7684\u662f\u5b57\u7b26\u4e32\u7684\u5f15\u7528\u8ba1\u6570\uff0c\u800c\u4e0d\u662f\u590d\u5236\u5b57\u7b26\u4e32\u7684\u5185\u5bb9\uff0c\u6240\u4ee5\u6548\u7387\u4f1a\u6bd4\u8f83\u9ad8\u3002\u82f1\u6587\u6570\u5b57\u548c\u5b57\u7b26\u5360\u7528 1 \u4e2a\u5b57\u8282\uff0c\u4e2d\u6587\u5360\u7528 2 \u6216 4 \u4e2a\u5b57\u8282\uff0c\u7edd\u5927\u90e8\u5206\u4e2d\u6587\u5360\u7528\u7684\u662f 2 \u4e2a\u5b57\u8282\u3002<\/p>\n<ul>\n<li>Utf8String \u7c7b\u578b<\/li>\n<\/ul>\n<p>Utf8String \u5728 2009 \u4ee5\u524d\u7684\u7248\u672c\uff0c\u88ab\u76f4\u63a5\u6620\u5c04\u5230\u4e86 AnsiString \u4e0a\u3002\u800c\u5728 2009 \u53ca\u4ee5\u540e\uff0cUtf8String \u662f\u4ee3\u7801\u9875\u4e3a CP_UTF8\uff0865001\uff09\u7f16\u7801\u7684\u5b57\u7b26\u4e32\u7c7b\u578b\u3002\u6240\u4ee5\u5b83\u4e5f\u662f\u4e00\u4e2a\u57fa\u4e8e\u5f15\u7528\u8ba1\u6570\u7684\u7c7b\u578b\u3002\u82f1\u6587\u6570\u5b57\u548c\u5b57\u7b26\u5360\u75281\u4e2a\u5b57\u8282\uff0c\u4e2d\u6587\u4e00\u822c\u5360\u7528 2 \u5230 4 \u4e2a\u5b57\u8282\uff0c\u6309 UTF8 \u89c4\u8303\u6700\u591a\u5360\u7528 6 \u4e2a\u5b57\u8282\u3002<\/p>\n<ul>\n<li>WideString \u7c7b\u578b<\/li>\n<\/ul>\n<p>WideString \u662f Unicode 16 LE \u7f16\u7801\u7684\u5b57\u7b26\u4e32\uff0c\u5b83\u662f COM \u517c\u5bb9\u7684\u7c7b\u578b\u3002\u5f53\u5b83\u505a\u4e3a\u4e00\u4e2a\u53c2\u6570\u4f20\u9012\u65f6\uff0c\u5b83\u9700\u8981\u521b\u5efa\u4e00\u4efd\u503c\u62f7\u8d1d\uff0c\u6240\u4ee5\u6548\u7387\u4e0a\u8981\u7a0d\u5dee\u3002\u5176\u4e2d\u7684\u6bcf\u4e00\u4e2a\u5b57\u7b26\u7684\u7c7b\u578b\u90fd\u662f Delphi \u4e2d\u7684 WideChar \u6216 C++ Builder \u4e2d\u7684 wchar_t\u3002\u5bf9\u4e8e Unicode 16 LE \u7f16\u7801\u5b57\u7b26\uff0c\u6211\u4eec\u9700\u8981\u6ce8\u610f\u6269\u5c55\u533a\u5b57\u7b26\uff0c\u4e00\u4e2a\u975e\u6269\u5c55\u533a\u5b57\u7b26\u5360\u7528 2 \u4e2a\u5b57\u8282\uff0c\u800c\u6269\u5c55\u533a\u7684\u5b57\u7b26\u5360\u7528 4 \u4e2a\u5b57\u8282\u3002\u6269\u5c55\u533a\u5b57\u7b26\u7684\u7f16\u7801\u9996\u4e2a\u5b57\u7b26\u7684\u7f16\u7801\u8303\u56f4\u662f 0xD800 ~ 0xDBFF\uff0c\u7b2c\u4e8c\u4e2a\u5b57\u7b26\u7684\u7f16\u7801\u8303\u56f4\u662f 0xDC00 ~ 0xDFFF\u3002<\/p>\n<ul>\n<li>UnicodeString \u7c7b\u578b<\/li>\n<\/ul>\n<p>UnicodeString \u662f\u4ece 2009 \u5f00\u59cb\u5f15\u5165\u7684\u5b57\u7b26\u4e32\u7c7b\u578b\uff0c\u5b83\u4e5f\u662f\u57fa\u4e8e\u5f15\u7528\u8ba1\u6570\u7684\uff0c\u6240\u4ee5\u6548\u7387\u4e0a\u8981\u6bd4 WideString \u5feb\u7684\u591a\u3002\u6211\u4eec\u53ef\u4ee5\u8ba4\u4e3a\u5b83\u662f WideString \u7684\u5f15\u7528\u8ba1\u6570\u7248\u672c\uff0c\u5bf9\u5e94\u7684\u4e5f\u662fUnicode 16 LE \u7f16\u7801\u7684\u5b57\u7b26\u4e32\u3002\u800c\u4e14 2009 \u5f00\u59cb\u5c06 String \u7c7b\u578b\u6620\u5c04\u5230 UnicodeString\u3002\u5b83\u7684\u7f16\u7801\u65b9\u5f0f\u548c\u8303\u56f4\u540c WideStrnig\u3002<\/p>\n<ul>\n<li>RawString \u7c7b\u578b<\/li>\n<\/ul>\n<p>RawString \u5b9e\u9645\u662f\u4e00\u79cd\u65b0\u7684\u5b57\u7b26\u4e32\u7c7b\u578b\uff0c\u5b83\u5b9e\u9645\u4e0a\u662f\u4e00\u79cd\u6ca1\u6709\u4efb\u4f55\u5185\u90e8\u7f16\u7801\u7684\u5b57\u7b26\u4e32\u7c7b\u578b\u3002\u5b83\u53ea\u662f\u4e00\u4e2a\u5bb9\u5668\uff0c\u5185\u90e8\u7684\u5b57\u7b26\u7f16\u7801\u6ca1\u6709\u5177\u4f53\u7ea6\u5b9a\u3002<\/p>\n<ul>\n<li>std::string<\/li>\n<\/ul>\n<p>\u8fd9\u4e2a\u662f C++ \u91cc\u7684\u5b57\u7b26\u4e32\u7c7b\u578b\uff0c\u7528\u4e8e\u652f\u6301\u975e Unicode 16 LE \u5b57\u7b26\u4e32\uff0c\u5b9e\u9645\u4e0a\u662f basic_string&lt;char&gt;\u3002\u53ef\u4ee5\u8ba4\u4e3a\u5b83\u662f Delphi \u4e2d AnsiString \u7684 C++ \u539f\u751f\u7248\u672c\uff0c\u4e0d\u8fc7\u8981\u660e\u767d\uff0c\u5b83\u6ca1\u6709\u5f15\u7528\u8ba1\u6570\u3002<\/p>\n<ul>\n<li>std::wstring<\/li>\n<\/ul>\n<p>\u8fd9\u4e2a\u662f C++ \u91cc\u7684\u5b57\u7b26\u4e32\u7c7b\u578b\uff0c\u7528\u4e8e\u652f\u6301 Unicode 16 LE \u7f16\u7801\u5b57\u7b26\u4e32\uff0c\u5b9e\u9645\u4e0a\u662f basic_string&lt;wchar_t&gt;\u3002\u53ef\u4ee5\u8ba4\u4e3a\u5b83\u662f Delphi \u4e2d WideString \u7684 C++ \u539f\u751f\u7248\u672c\u3002<\/p>\n<ul>\n<li>PAnsiChar \/\u00a0char *<\/li>\n<\/ul>\n<p>Ansi \u7f16\u7801\u7684\u5b57\u7b26\u4e32\u6307\u9488\u7c7b\u578b\u3002AnsiString\u3001Utf8String\u3001std::string \u7684\u5185\u5bb9\u90fd\u53ef\u4ee5\u8f6c\u6362\u6210\u8fd9\u79cd\u5b57\u7b26\u4e32\u6307\u9488\u7c7b\u578b\u3002\u7531\u4e8e ShortString \u4e0d\u662f\u4e00\u79cd\u4ee5 ASCII \u7801 0 \u4e3a\u7ed3\u675f\u7684\u5b57\u7b26\u4e32\uff0c\u4e0d\u7b26\u5408 C \u8bed\u8a00\u4e2d\u7684\u5b57\u7b26\u4e32\u89c4\u5219\uff0c\u6240\u4ee5\uff0c\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u9700\u8981\u5148\u5c06 ShortString\u8d4b\u503c\u7ed9 AnsiString \u7136\u540e\u624d\u80fd\u8f6c\u6362\u4e3a\u8fd9\u79cd\u6307\u9488\u7c7b\u578b\u3002<\/p>\n<ul>\n<li>PWideChar \/ wchar_t *<\/li>\n<\/ul>\n<p>Unicode \u7f16\u7801\u7684\u5b57\u7b26\u4e32\u6307\u9488\u7c7b\u578b\u3002WideString\u3001UnicodeString\u3001std::wstring \u7684\u5185\u5bb9\u90fd\u53ef\u4ee5\u8f6c\u6362\u6210\u8fd9\u79cd\u5b57\u7b26\u4e32\u7c7b\u578b\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u597d\u4e86\uff0c\u524d\u9762\u8bf4\u4e86\u90a3\u4e48\u591a\uff0c\u90a3\u4e48\u8fd9\u4e9b\u5b57\u7b26\u4e32\u7c7b\u578b\u4e4b\u95f4\u5982\u4f55\u8fdb\u884c\u76f8\u4e92\u8f6c\u6362\u5462\uff1f<\/p>\n<ul>\n<li>AnsiString \u00a0 &lt;-&gt; Utf8String \/ WideString \/ UnicodeString \u7c7b\u578b\u8f6c\u6362<\/li>\n<\/ul>\n<p>\u76f4\u63a5\u8d4b\u503c\u5373\u53ef\uff0c\u4e0d\u9700\u8981\u989d\u5916\u7684\u5904\u7406\uff0c\u4e5f\u4e0d\u4f1a\u51fa\u73b0\u4e71\u7801\u3002\u53cd\u8fc7\u6765\u5219\u7531\u4e8e\u53ef\u80fd\u5b57\u7b26\u96c6\u7684\u652f\u6301\u95ee\u9898\uff0c\u9020\u6210\u4e71\u7801\u3002<\/p>\n<ul>\n<li>AnsiString -&gt; PAnsiChar\/char *<\/li>\n<\/ul>\n<p>Delphi \u4e2d\u76f4\u63a5\u7528 PAnsiChar(\u53d8\u91cf\u540d) \u5373\u53ef\uff0c\u800c C++ \u4e2d\u4f7f\u7528 \u53d8\u91cf\u540d.c_str() \u51fd\u6570\u6765\u8fd4\u56de\u9996\u4e2a\u5b57\u7b26\u7684\u5730\u5740\u3002<\/p>\n<ul>\n<li>WideString \/ UnicodeString -&gt; PWideChar \/ wchar_t *<\/li>\n<\/ul>\n<p>Delphi \u4e2d\u76f4\u63a5\u7528 PWideChar(\u53d8\u91cf\u540d)\u5373\u53ef\uff0c\u800c C++ \u4e2d\u4f7f\u7528 \u53d8\u91cf\u540d.c_str() \u6216 \u53d8\u91cf\u540d.c_bstr() \u51fd\u6570\u6765\u8fd4\u56de\u9996\u4e2a\u5b57\u7b26\u7684\u5730\u5740\u3002<\/p>\n<ul>\n<li>ShortString -&gt; PAnsiChar\/char *<\/li>\n<\/ul>\n<p>\u4e0d\u597d\u610f\u601d\uff0c\u6b64\u8def\u4e0d\u901a\u3002\u539f\u56e0\u524d\u9762\u8bf4\u4e86\uff0c\u6240\u4ee5\u8d4b\u503c\u7ed9\u4e00\u4e2a AnsiString \u7136\u540e\u518d\u6309\u524d\u9762\u7684\u65b9\u6cd5\u8f6c\u624d\u662f\u6b63\u9053\u3002<\/p>\n<ul>\n<li>std::string -&gt; char *<\/li>\n<\/ul>\n<p>STL \u7684\u6807\u51c6\u65b9\u6cd5 \u53d8\u91cf\u540d.begin() \u5c31\u662f\u4e86\u3002<\/p>\n<ul>\n<li>std::wstring -&gt; wchar_t *<\/li>\n<\/ul>\n<p>\u540c\u4e0a\uff0cSTL\u91cc\u7684 \u53d8\u91cf\u540d.begin() \u5c31\u662f\u4e86\u3002<\/p>\n<p>\u53cd\u8fc7\u6765\uff0c\u6211\u4eec\u5c06 PAnsiChar \/ char * \u6216 PWideChar \/ wchar_t * \u7c7b\u578b\u8d4b\u503c\u7ed9\u5176\u5b83\u7c7b\u578b\u65f6\uff0c\u76f4\u63a5\u8d4b\u503c\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n<p>\u5728\u8fd9\u91cc\u6211\u8fd8\u8981\u63d0\u9192\u4e00\u70b9\uff0c2009 \u4ee5\u524d\u7248\u672c\u7684 Utf8String \u5b9e\u9645\u4e0a\u662f AnsiString \u7684\u522b\u540d\uff0c\u6240\u4ee5\u4e0d\u8981\u60f3\u5f53\u7136\u7684\u8ba4\u4e3a\u5176\u4e2d\u5b58\u8d2e\u7684\u5c31\u662f UTF-8 \u7f16\u7801\u7684\u5b57\u7b26\u4e32\u3002<\/p>\n<p>\u53e6\u5916\uff0c\u5728 FMX \u73af\u5883\u4e0b\uff0cAnsiString\u3001WideString\u548cUtf8String \u8fd9\u4e09\u4e2a\u7c7b\u578b\u9ed8\u8ba4\u90fd\u6d88\u5931\u4e0d\u89c1\u4e86\uff0c\u6240\u4ee5\u5bf9\u5e94\u7684 PAnsiChar \u4e5f\u5c31\u6ca1\u6709\u5b9a\u4e49\u4e86\u3002\u53d6\u800c\u4ee3\u4e4b\u7684\u662f\uff1aMarshaledAString \u7b49\u4ef7\u4e8e PAnsiChar\uff0c\u800c\u00a0MarshaledString \u7b49\u4ef7\u4e8e PWideChar\uff0c\u53ef\u4ee5\u7528\u5728\u9700\u8981\u7684\u573a\u5408\u3002<\/p>\n<p>\u5982\u679c\u6709\u4ec0\u4e48\u7591\u95ee\u6216\u8865\u5145\uff0c\u6211\u4eec\u56de\u5934\u5728\u7fa4\u91cc\u804a\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5b57\u7b26\u4e32\u5728\u7f16\u7a0b\u4e2d\u662f\u4e00\u4e2a\u5e38\u89c1\u7684\u7c7b\u578b\uff0c\u4f46\u5de6\u4e00\u4e2a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[69,8,21],"tags":[25],"class_list":["post-2500","post","type-post","status-publish","format-standard","hentry","category-c-builder","category-delphi","category-misc","tag-25"],"views":6362,"_links":{"self":[{"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/posts\/2500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2500"}],"version-history":[{"count":2,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/posts\/2500\/revisions"}],"predecessor-version":[{"id":2502,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=\/wp\/v2\/posts\/2500\/revisions\/2502"}],"wp:attachment":[{"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.qdac.cc\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}