delphixe ulkjson utf8

时间: 2023-06-07 15:03:01 浏览: 17
DelphiXE是Embarcadero公司推出的一款编程语言开发环境,通过该环境可以进行快速、高效、灵活的Windows开发。其中,使用Delphi语言开发的应用程序可以充分利用Windows操作系统提供的各种功能以及第三方组件,从而创造出丰富多彩的Windows应用程序。 ULKJSON是一种基于JSON的通讯协议,它采用了最新的编码技术和数据传输方式,能够高效地进行数据的传递和解析,具有比较广泛的应用场景。在DelphiXE开发中,通过使用ULKJSON可以实现各个模块之间的数据交互,并且使用ULKJSON的过程非常简单、灵活,易于开发。 UTF8是一种现代的字符编码方式,它采用了可变长度的编码方式,能够支持全球各种语言的文字编码,具有较好的兼容性和可扩展性。在DelphiXE应用程序中,使用UTF8可以有效地解决各种语言、文本的编码问题,同时还可以支持多种语言的文本显示。使用UTF8可以让开发者方便地进行多语言版本的开发,从而更好地满足用户的需求。 综上所述,在DelphiXE应用程序的开发中,通过使用ULKJSON和UTF8技术,可以实现高效、方便、灵活的数据交互和多语言支持,从而打造出更加优秀的Windows应用程序。
相关问题

delphixe8 httpserver

### 回答1: Delphi XE8 是一种面向对象的编程语言和开发环境,用于创建Windows应用程序。它提供了一个称为DelphiXE8 HttpServer的组件,可用于构建和管理基于HTTP协议的服务器。 Delphi XE8 HttpServer 组件允许开发人员创建一个HTTP服务器来处理HTTP请求和响应。通过使用这个组件,可以快速而轻松地创建Web应用程序,并提供给用户以HTTP协议通信的功能。 使用Delphi XE8 HttpServer,开发人员可以实现HTTP协议中的各种功能,包括处理GET请求和POST请求,解析URL参数,以及获取和发送HTTP头信息等。它还可以处理并发连接和异步请求,以提高服务器的性能和响应能力。 Delphi XE8 HttpServer 提供了丰富的功能和灵活的配置选项,使开发人员能够根据自己的需求来定制服务器的行为和功能。它还支持安全性和身份验证机制,以确保只有经过身份验证的用户可以访问服务器资源。 在开发过程中,Delphi XE8 HttpServer 还提供了一套完整的开发工具和资源,包括示例代码、文档和调试器,以便开发人员能够更加轻松地使用和调试服务器应用程序。 总而言之,Delphi XE8 HttpServer 是一个强大而灵活的组件,为开发人员提供了构建和管理基于HTTP协议的服务器的能力。它使开发Web应用程序变得更加简单和高效,并提供了丰富的功能和配置选项,以满足各种需求。 ### 回答2: Delphi XE8是一款由Embarcadero Technologies开发的集成开发环境(IDE),它允许开发人员使用Delphi编程语言进行快速的应用程序开发。其中,Delphi XE8还提供了一个名为HTTPServer的组件,用于创建和管理Web服务器。 HTTPServer是一个非常强大的工具,它可以将Delphi应用程序转变为Web服务器,以便通过Web浏览器访问。它支持HTTP和HTTPS协议,并具有丰富的功能集,如请求处理、会话管理、安全性等。 使用HTTPServer,我们可以轻松地创建一个基于Delphi编写的服务器应用程序,以满足不同的需求。我们可以处理来自客户端的HTTP请求,并根据请求返回相应的数据或执行特定的操作。这使得我们能够构建各种Web应用程序,如网站、Web服务、在线商店等。 使用Delphi XE8的HTTPServer组件,我们可以轻松地创建一个高效、可靠的Web服务器应用程序。通过提供易于使用的API和处理请求所需的工具,它使得开发人员能够快速创建和部署功能强大的Web应用程序。 总的来说,Delphi XE8的HTTPServer组件为开发人员提供了一个简单而强大的工具,用于构建和管理Web服务器应用程序。它是Delphi开发人员的重要工具之一,可以帮助他们轻松地实现各种Web应用程序的需求。 ### 回答3: DelphiXE8是Embarcadero公司推出的一款集成开发环境,主要用于快速开发Windows平台下的应用程序。其中包含了一个HTTP服务器组件,使得开发者可以简单地构建和部署基于HTTP协议的应用程序。 DelphiXE8的HTTP服务器组件是一个强大且灵活的工具,可以实现各种功能,如Web API、网页服务器、文件服务器等。开发者可以利用该组件来快速搭建自己的Web服务,提供给其他应用或用户访问。该组件支持常见的HTTP请求方法,如GET、POST等,同时也支持自定义的请求处理逻辑。 使用DelphiXE8的HTTP服务器组件,开发者可以轻松地处理HTTP请求和响应,包括解析请求参数、读取请求体、设置响应头、发送响应内容等。开发者可以通过编写代码来控制每个请求的处理逻辑,例如根据不同的URL路径返回不同的内容,根据请求参数进行相应的操作,或验证用户身份等。 此外,DelphiXE8的HTTP服务器组件还支持处理静态资源文件,例如HTML页面、CSS样式表和JavaScript脚本等。开发者只需将这些文件放在指定的目录下,组件将自动处理这些文件的请求。 总而言之,DelphiXE8的HTTP服务器组件提供了一种简单、高效且灵活的方式来创建和部署基于HTTP协议的应用程序。无论是开发Web API还是搭建网页服务器,开发者都可以借助该组件快速实现自己的需求。

delphi xe LuxandFaceSDK8 FacePosition 代码

以下是在 Delphi XE 中使用 LuxandFaceSDK8 库获取人脸位置信息的示例代码: ``` uses LuxandFaceSDK; var FSDKResult: Integer; FacePosition: TFacePosition; ImageHandle: HImage; // 初始化 SDK FSDKResult := FSDK_ActivateLibrary('your_license_key'); if FSDKResult <> FSDKE_OK then begin // 处理错误 end; FSDKResult := FSDK_Initialize(''); if FSDKResult <> FSDKE_OK then begin // 处理错误 end; // 加载图像 FSDKResult := FSDK_LoadImageFromFile('path/to/image.jpg', @ImageHandle); if FSDKResult <> FSDKE_OK then begin // 处理错误 end; // 检测人脸 FSDKResult := FSDK_DetectFace(ImageHandle, @FacePosition); if FSDKResult <> FSDKE_OK then begin // 处理错误 end; // FacePosition 中包含了人脸的位置信息 // 例如:FacePosition.x 和 FacePosition.y 是人脸的左上角坐标 // FacePosition.width 和 FacePosition.height 是人脸的宽度和高度 ``` 请注意,以上示例代码仅供参考,具体实现可能会因为您的需求而有所不同。

相关推荐

以下是使用Delphi XE和LuxandFaceSDK8进行人脸对比的示例代码: 首先,您需要将LuxandFaceSDK8的DLL文件和头文件添加到Delphi项目中。然后,您可以使用以下代码: delphi uses LuxandFaceSDK; function CompareFaces(const Image1, Image2: string): Integer; var hImage1, hImage2: HImage; FaceCount1, FaceCount2: Integer; FaceCoords1, FaceCoords2: TFacePositionArray; FaceTemplate1, FaceTemplate2: TFaceTemplate; Similarity: Single; begin Result := 0; // 加载图像 if FSDK.LoadImageFromFile(@hImage1, PAnsiChar(AnsiString(Image1)), 0) <> FSDKE_OK then Exit; if FSDK.LoadImageFromFile(@hImage2, PAnsiChar(AnsiString(Image2)), 0) <> FSDKE_OK then begin FSDK.FreeImage(hImage1); Exit; end; // 检测人脸 if FSDK.DetectFaces(hImage1, @FaceCount1, @FaceCoords1[0], Length(FaceCoords1)) <> FSDKE_OK then begin FSDK.FreeImage(hImage1); FSDK.FreeImage(hImage2); Exit; end; if FSDK.DetectFaces(hImage2, @FaceCount2, @FaceCoords2[0], Length(FaceCoords2)) <> FSDKE_OK then begin FSDK.FreeImage(hImage1); FSDK.FreeImage(hImage2); Exit; end; // 提取人脸模板 if FSDK.GetFaceTemplate(hImage1, @FaceCoords1[0], @FaceTemplate1) <> FSDKE_OK then begin FSDK.FreeImage(hImage1); FSDK.FreeImage(hImage2); Exit; end; if FSDK.GetFaceTemplate(hImage2, @FaceCoords2[0], @FaceTemplate2) <> FSDKE_OK then begin FSDK.FreeImage(hImage1); FSDK.FreeImage(hImage2); Exit; end; // 对比相似度 if FSDK.MatchFaces(@FaceTemplate1, @FaceTemplate2, @Similarity) = FSDKE_OK then Result := Round(Similarity * 100); // 释放资源 FSDK.FreeImage(hImage1); FSDK.FreeImage(hImage2); end; 该函数将返回两张图片中人脸的相似度,以百分比表示。您可以根据需要调整该函数,例如添加错误处理和日志记录等。 请注意,此示例仅适用于使用LuxandFaceSDK8进行人脸比对,并且您需要获取并使用相应的许可证才能使用该SDK。
### 回答1: Delphi XE是一种用于开发Windows、macOS和iOS平台应用程序的集成开发环境(IDE)。在Delphi XE中,可以使用不同的库和组件来实现二维码的生成和解码功能。 要实现二维码生成功能,可以使用第三方库,例如ZXing(Zebra Crossing)或DelphiZXing。这些库可以在Delphi XE中导入并使用。使用这些库,可以通过调用相应的函数来生成包含特定信息的二维码。将生成的二维码显示在用户界面上或将其保存为图像文件。 要实现二维码解码功能,可以使用相同的第三方库或其他支持二维码解码的库。这些库提供了函数来读取图像文件或从摄像头捕获的图像,并解码其中的二维码。解码完成后,可以获取二维码中包含的信息,并在应用程序中进行处理或展示。 Delphi XE提供了强大的开发工具和功能,使开发者能够轻松实现二维码的生成和解码。使用这些功能,开发者可以为应用程序添加二维码功能,用于扫描、分享和处理二维码信息。无论是用于商业用途还是个人用途,二维码在现代社会中具有广泛的应用,并且在移动应用和电子商务等领域中被广泛利用。 总之,Delphi XE可以通过导入第三方库和组件来实现二维码的生成和解码功能。这使得开发者能够为应用程序添加各种有关二维码的功能,并满足不同用户的需求。 ### 回答2: Delphi XE是一种强大的集成开发环境(IDE),用于编写Windows应用程序和跨平台应用程序。它支持多种编程语言,包括Object Pascal和Delphi。 针对二维码的开发,Delphi XE提供了多种方式来生成和解码二维码。首先,可以使用内置的QR码组件来快速生成二维码。Delphi XE提供了一个名为TQRCode的QR码控件,通过设置不同的属性,如内容、尺寸、颜色等,可以定制生成的二维码。 其次,通过调用第三方库,例如ZXing(Zebra Crossing)库,也可以在Delphi XE中实现生成和解析二维码的功能。ZXing是一个开源的二维码处理库,它支持多种编程语言,包括Delphi。可以通过下载ZXing的Delphi版本,然后在Delphi XE中导入并使用该库来实现二维码的生成和解析。 通过上述方法,我们可以利用Delphi XE来生成包含各种信息的二维码,例如URL、文本、邮件地址、联系人信息等。此外,Delphi XE还提供了其他一些功能,例如调整二维码的尺寸、定制二维码的样式、添加Logo等。 总结来说,Delphi XE提供了方便快捷的方式来实现二维码的生成和解析。开发人员可以选择使用内置的QR码组件或第三方库来完成相应的功能。无论是生成简单的纯文本二维码还是包含复杂信息的二维码,Delphi XE都能满足开发需求。 ### 回答3: Delphi XE是一种集成开发环境(IDE),用于开发具有对用户界面的需求的Windows应用程序。它包含了许多强大的工具和功能,可以帮助开发人员简化和加速应用程序的开发过程。 二维码是一种特殊的条形码,它可以容纳更多的信息,并且可以在较小的空间内显示更多的数据。在Delphi XE中,我们可以通过使用特定的库或组件来生成和处理二维码。 Delphi XE自身并不提供原生的二维码生成和处理功能,但我们可以使用第三方库或组件来实现这些功能。例如,ZXing是一个流行的开源库,可以用于在Delphi XE中生成和扫描二维码。 要在Delphi XE中使用ZXing库,我们需要先下载并安装该库。然后,我们可以使用Delphi的界面设计器来创建一个适当的用户界面,其中包含一个用于显示二维码的图像控件和一个按钮用于生成二维码。 当用户点击生成按钮时,我们可以调用ZXing库中的函数来生成二维码,并将其显示在图像控件中。生成的二维码可以包含特定的文本、URL或其他信息,我们可以根据需求进行定制。 同样,我们也可以使用ZXing库来解码已有的二维码。当用户将二维码放置在摄像头前时,我们可以调用库中的函数来扫描和解码二维码中的数据。 总之,虽然Delphi XE本身没有内置的二维码生成和处理功能,但我们可以通过使用第三方库或组件,如ZXing库,来实现这些功能。这种方法可以帮助我们在Delphi XE中轻松地生成和处理二维码,并将其应用于我们的Windows应用程序中。
Delphi是一种面向对象的编程语言,XE10.4是Delphi的一个版本。Delphi XE10.4是Embarcadero Technologies公司于2020年推出的最新版本。它是一个集成开发环境(IDE),用于开发跨平台的应用程序。 Delphi是一种基于Pascal语言的编程语言,结合了面向对象的概念和传统的过程性编程。它的语法清晰简洁,易于学习和使用。Delphi XE10.4提供了许多新的特性和改进,帮助开发者更加高效地创建应用程序。 Delphi XE10.4支持多平台开发,可以用于开发Windows、macOS、iOS和Android等多种操作系统的应用程序。开发者可以使用同一套代码,在不同的平台上构建出具有原生体验的应用程序。 Delphi XE10.4还提供了许多强大的组件和工具,帮助开发者加快开发速度,并提供更好的用户体验。其中包括用于界面设计的视觉组件、用于数据访问的数据库组件、用于网络通信的网络组件等等。开发者可以通过拖放的方式快速构建用户界面,通过组件的事件触发逻辑操作。 Delphi XE10.4还提供了一套完整的调试工具,帮助开发者定位并解决应用程序中的错误。开发者可以逐步调试代码,查看变量的值和程序的执行过程,从而快速排除问题。 总之,Delphi XE10.4是一种功能强大、易于学习和使用的开发工具,适用于多平台开发,帮助开发者创建高质量的应用程序。无论是个人开发者还是企业开发团队,都可以通过Delphi XE10.4来实现他们的软件开发需求。
### 回答1: Delphi XE11.2是一种集成开发环境(IDE)和编程语言,用于开发Windows、MacOS和移动设备应用程序。它是Embarcadero公司开发的一种工具,该公司专注于工具和技术,帮助开发人员和企业加快应用程序开发和创新速度。 Delphi XE11.2为开发人员提供了一个直观的用户界面,用于在Windows和macOS两个操作系统上构建和运行应用程序。开发人员可以使用它构建高效快速的应用程序,并具有代码编辑器、调试器、设计器和其他开发工具。使用Delphi XE11.2的开发人员可以使用多种编程语言,如Pascal、C++和C#等。 Delphi XE11.2还支持开发流行的移动设备平台,如iOS和Android,为移动开发提供了改善生产力、可重用性和可维护性的工具。该工具集还包括多种库、组件和控件,可帮助开发人员构建跨平台应用程序。 总之,Delphi XE11.2是一种功能强大的工具,为开发人员提供了构建Windows、macOS和移动设备应用程序所需的所有工具。它的跨平台支持和可扩展性使得开发人员可以更加轻松地构建和维护高质量的应用程序,从而加速创新速度并提高生产力。 ### 回答2: Delphi XE11.2是一款基于Object Pascal语言开发的集成开发环境(IDE),由Embarcadero公司于2013年发布,它是Delphi系列中的一员。Delphi是一种高级编程语言,可以用于开发Windows应用程序、数据库应用程序、网络应用程序等。Delphi XE11.2包含了许多新功能和改进,增加了对Windows 8的支持,使用起来更加流畅、稳定。 Delphi XE11.2的开发工具集成了众多工具,包括视觉设计器、编辑器、调试器、代码分析器、编译器,以及用于简化代码编写的代码库。它还提供了一些方便的功能,如自动完成、语法高亮、代码重构等。 Delphi XE11.2具有很强的跨平台能力,可以编写Windows、Mac OS X和移动设备上的应用程序。它还提供了对多种数据库的支持,如MySQL、Oracle、Firebird等。此外,它还支持Web服务开发,在Web应用程序开发中起到了很大的作用。 总之,Delphi XE11.2是一款功能强大的开发工具,适用于各种类型的应用程序开发。它具有良好的可扩展性和易用性,让开发过程更加高效,是编写Windows、Mac OS X和移动应用程序的理想选择。 ### 回答3: Delphi XE11.2是一个高级的集成开发环境,主要用于企业级应用程序开发。它支持多种编程语言,包括Pascal和C++,还具有强大的数据库开发和UI设计工具。Delphi XE11.2还支持大型团队开发,提供了一些非常实用的版本控制和协作工具,能够有效地提高开发效率和质量。它的应用范围广泛,从桌面应用程序到Web应用程序,再到移动应用程序,都可以使用Delphi XE11.2进行开发。与其他IDE相比,Delphi XE11.2在速度和易用性方面都有很大的优势,它还可以轻松地与其他工具和技术集成,例如.NET和Java。因此,Delphi XE11.2是一个非常完整的开发工具,可以帮助开发人员更快、更轻松地构建出高质量、富功能的应用程序。
Delphi7是一种非常受欢迎的编程语言和集成开发环境,它在处理字符串时并不直接支持UTF-8编码。在Delphi7中,字符串类型默认为AnsiString,它使用ANSI字符集来表示字符。 要在Delphi7中使用UTF-8编码的字符串,需要进行一些额外的处理。首先,您需要使用Third Party Libraries(第三方库)来提供对UTF-8字符串的支持。例如,您可以使用JEDI Code Library或TntUnicodeControls库。 在使用这些库之后,您就可以在Delphi7中处理UTF-8字符串了。您可以使用TntUnicodeString类型来存储和处理UTF-8字符串。TntUnicodeString是一个Unicode字符串类型,可以存储任意Unicode字符,包括UTF-8编码的字符。 当您需要操作UTF-8字符串时,可以使用TntUnicodeString提供的函数和方法来进行处理。例如,您可以使用TntUnicodeString的Length函数来获取UTF-8字符串的长度,使用TntUnicodeString的Copy函数来复制UTF-8字符串的一部分,使用TntUnicodeString的Pos函数来查找子字符串在UTF-8字符串中的位置等等。 需要注意的是,使用UTF-8字符串可能会增加内存和处理的开销。因为UTF-8编码使用变长编码,所以处理和操作UTF-8字符串需要更多的计算。此外,还需要在将UTF-8字符串显示在用户界面中时进行适当的编码转换,以确保正确显示。 总之,在Delphi7中使用UTF-8字符串需要使用第三方库来提供对UTF-8字符串的支持,并使用TntUnicodeString类型来存储和处理UTF-8字符串。尽管增加了一些额外的处理,但这样可以确保您能够处理和操作UTF-8编码的字符串。

最新推荐

Delphi XE10自带皮肤的使用方法

1、用Delhi开发的应用程序,窗口界面实在是太土气了。 2、尝试下载安装第三方的皮肤,但会使用APP尺寸暴增。 ...4、本文详细介绍了Delphi XE10自带皮肤的使用方法,图文并茂,操作简单,一看就会。

DelphiXE10安装方法.docx

在安装depix时很多人缺相应的经验,在安装过程中不是少这个又少那个,碰到这样那样的问题,不能顺利安装。该文档详细记录了delphiXE10的安装过程,安装完后能正常启动使用(你懂得)

Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结

Delphi7升级到Delphi 2010、Delphi XE、Delphi XE2总结 !最后有个项目要移植到64位,所以这个很有用。在2010中PChar已经不再表示PAnsiChar而是表示PWideChar,如果依然这样写,运行时很可能会得到一个内存访问错误。...

Delphi XE5 for Android

Delphi XE5 for Android Delphi XE5 出来了,支持Android的开发,试用了一下,有几个问题: 1、只支持ARM7的设备,不支持Inter设备。手上刚好有一个华硕K004,很遗憾用不上,只能用手机试了。 2、要支持联机调试必须...

Delphi XE7笔记

记性差了, 初学 Delphi XE7,随笔记录了些常用必要的注意要点。

数据结构1800试题.pdf

你还在苦苦寻找数据结构的题目吗?这里刚刚上传了一份数据结构共1800道试题,轻松解决期末挂科的难题。不信?你下载看看,这里是纯题目,你下载了再来私信我答案。按数据结构教材分章节,每一章节都有选择题、或有判断题、填空题、算法设计题及应用题,题型丰富多样,共五种类型题目。本学期已过去一半,相信你数据结构叶已经学得差不多了,是时候拿题来练练手了,如果你考研,更需要这份1800道题来巩固自己的基础及攻克重点难点。现在下载,不早不晚,越往后拖,越到后面,你身边的人就越卷,甚至卷得达到你无法想象的程度。我也是曾经遇到过这样的人,学习,练题,就要趁现在,不然到时你都不知道要刷数据结构题好还是高数、工数、大英,或是算法题?学完理论要及时巩固知识内容才是王道!记住!!!下载了来要答案(v:zywcv1220)。

特邀编辑特刊:安全可信计算

10特刊客座编辑安全和可信任计算0OZGUR SINANOGLU,阿布扎比纽约大学,阿联酋 RAMESHKARRI,纽约大学,纽约0人们越来越关注支撑现代社会所有信息系统的硬件的可信任性和可靠性。对于包括金融、医疗、交通和能源在内的所有关键基础设施,可信任和可靠的半导体供应链、硬件组件和平台至关重要。传统上,保护所有关键基础设施的信息系统,特别是确保信息的真实性、完整性和机密性,是使用在被认为是可信任和可靠的硬件平台上运行的软件实现的安全协议。0然而,这一假设不再成立;越来越多的攻击是0有关硬件可信任根的报告正在https://isis.poly.edu/esc/2014/index.html上进行。自2008年以来,纽约大学一直组织年度嵌入式安全挑战赛(ESC)以展示基于硬件的攻击对信息系统的容易性和可行性。作为这一年度活动的一部分,ESC2014要求硬件安全和新兴技术�

ax1 = fig.add_subplot(221, projection='3d')如何更改画布的大小

### 回答1: 可以使用`fig.set_size_inches()`方法来更改画布大小。例如,如果想要将画布大小更改为宽8英寸,高6英寸,可以使用以下代码: ``` fig.set_size_inches(8, 6) ``` 请注意,此方法必须在绘图之前调用。完整代码示例: ``` import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() fig.set_size_inches(8, 6) ax1 = fig.add_subplot(221, project

TFT屏幕-ILI9486数据手册带命令标签版.pdf

ILI9486手册 官方手册 ILI9486 is a 262,144-color single-chip SoC driver for a-Si TFT liquid crystal display with resolution of 320RGBx480 dots, comprising a 960-channel source driver, a 480-channel gate driver, 345,600bytes GRAM for graphic data of 320RGBx480 dots, and power supply circuit. The ILI9486 supports parallel CPU 8-/9-/16-/18-bit data bus interface and 3-/4-line serial peripheral interfaces (SPI). The ILI9486 is also compliant with RGB (16-/18-bit) data bus for video image display. For high speed serial interface, the ILI9486 also provides one data and clock lane and supports up to 500Mbps on MIPI DSI link. And also support MDDI interface.

特邀编辑导言:片上学习的硬件与算法

300主编介绍:芯片上学习的硬件和算法0YU CAO,亚利桑那州立大学XINLI,卡内基梅隆大学TAEMINKIM,英特尔SUYOG GUPTA,谷歌0近年来,机器学习和神经计算算法取得了重大进展,在各种任务中实现了接近甚至优于人类水平的准确率,如基于图像的搜索、多类别分类和场景分析。然而,大多数方法在很大程度上依赖于大型数据集的可用性和耗时的离线训练以生成准确的模型,这在许多处理大规模和流式数据的应用中是主要限制因素,如工业互联网、自动驾驶车辆和个性化医疗分析。此外,这些智能算法的计算复杂性仍然对最先进的计算平台构成挑战,特别是当所需的应用受到功耗低、吞吐量高、延迟小等要求的严格限制时。由于高容量、高维度和高速度数据,最近传感器技术的进步进一步加剧了这种情况。0在严格的条件下支持芯片上学习和分类的挑战0性�