diff --git a/.ci/before_deploy.sh b/.ci/before_deploy.sh deleted file mode 100755 index 4ab7ce9..0000000 --- a/.ci/before_deploy.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -set -e - -if [[ $DEPLOY == 'true' ]]; then - carthage build --no-skip-current - carthage archive $FRAMEWORK_NAME -fi diff --git a/.ci/deploy_pod.sh b/.ci/deploy_pod.sh deleted file mode 100644 index 90ef3b3..0000000 --- a/.ci/deploy_pod.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -source ~/.rvm/scripts/rvm -rvm use default -pod trunk push \ No newline at end of file diff --git a/.ci/install.sh b/.ci/install.sh deleted file mode 100755 index 548d17d..0000000 --- a/.ci/install.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -set -e - -if [[ $TRAVIS_OS_NAME == 'osx' ]]; then - echo "๐Ÿ‘‰ Installing build dependencies" - gem install xcpretty -fi - -if [[ $TRAVIS_OS_NAME == 'linux' ]]; then - - echo "๐Ÿ‘‰ Installing Swift" - SWIFT_URL=https://swift.org/builds/$LOCAL_SWIFT_BRANCH/ubuntu1404/$LOCAL_SWIFT_VERSION/$LOCAL_SWIFT_VERSION-ubuntu14.04.tar.gz - curl -L $SWIFT_URL -o swift.tar.gz - sudo tar -xzf swift.tar.gz --directory /usr/local --strip-components=2 - - echo "๐Ÿ‘‰ Fixing CoreFoundation" - sudo find /usr/local/lib/swift/CoreFoundation -type f -exec chmod 644 {} \; - -fi diff --git a/.ci/test.sh b/.ci/test.sh deleted file mode 100644 index cf9dc2a..0000000 --- a/.ci/test.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -set -e - -if [[ $TRAVIS_OS_NAME == 'osx' ]]; then - - echo "๐Ÿ›  Building project in Debug mode" - xcodebuild clean build -project HTMLString.xcodeproj -scheme "$SCHEME" -configuration Debug | xcpretty - - echo "๐Ÿ›  Building project in Release mode" - xcodebuild clean build -project HTMLString.xcodeproj -scheme "$SCHEME" -configuration Release | xcpretty - - case $TEST in - - 'simulator') - echo "๐Ÿ“ฒ Creating Simulator" - DEVICE_ID=$(xcrun simctl create $TEST_DEVICE \ - com.apple.CoreSimulator.SimDeviceType.$TEST_DEVICE \ - com.apple.CoreSimulator.SimRuntime.$TEST_RUNTIME) - - echo "๐Ÿ” Running unit tests on simulator [$DEVICE_ID]" - xcrun simctl boot $DEVICE_ID - xcodebuild clean test -project HTMLString.xcodeproj -scheme "$SCHEME" -destination "id=$DEVICE_ID" | xcpretty - ;; - - 'device') - echo "๐Ÿ” Running unit tests on device" - xcodebuild clean test -project HTMLString.xcodeproj -scheme "$SCHEME" -destination "$DESTINATION" | xcpretty - ;; - - *) - echo "โบ No unit tests to run." - ;; - - esac - -fi - -if [[ $TRAVIS_OS_NAME == 'linux' ]]; then - - echo "๐Ÿ›  Building project in Debug mode" - swift build - - echo "๐Ÿ›  Building project in Release mode" - swift build -c release - - echo "๐Ÿ” Running unit tests" - swift test - -fi diff --git a/.generate-docs.sh b/.generate-docs.sh index d794ab3..df72467 100755 --- a/.generate-docs.sh +++ b/.generate-docs.sh @@ -1,11 +1,11 @@ #!/bin/bash set -e -MODULE_VERSION=$1 -OUTPUT=$2 -SWIFT_VERSION="5.0" -AUTHOR="Alexis Aubry" -AUTHOR_URL="https://twitter.com/_alexaubry" +OUTPUT=$1 +MODULE_VERSION="6.0.0" +SWIFT_VERSION="5.3" +AUTHOR="Alexis Aubry-Akers" +AUTHOR_URL="https://alexisonline.dev" MODULE_NAME="HTMLString" COPYRIGHT="Copyright ยฉ 2016 - present $AUTHOR. Available under the MIT License." GITHUB_URL="https://github.com/alexaubry/HTMLString" @@ -19,7 +19,8 @@ bundle exec jazzy \ --module-version "$MODULE_VERSION" \ --copyright "$COPYRIGHT" \ -g "$GITHUB_URL" \ - --github-file-prefix "$GITHUB_URL/tree/master" \ + -d "dash-feed://$GH_PAGES_URL/$MODULE_NAME/docsets/$MODULE_NAME.xml" + --github-file-prefix "$GITHUB_URL/tree/main" \ -r "$GH_PAGES_URL" \ -o "$OUTPUT"\ --min-acl public \ diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml new file mode 100644 index 0000000..26bb796 --- /dev/null +++ b/.github/workflows/swift.yml @@ -0,0 +1,20 @@ +name: Swift Package +env: + DEVELOPER_DIR: /Applications/Xcode_12.app/Contents/Developer + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Build + run: swift build + - name: Run tests + run: swift test diff --git a/.github/workflows/xcodebuild.yml b/.github/workflows/xcodebuild.yml new file mode 100644 index 0000000..5960274 --- /dev/null +++ b/.github/workflows/xcodebuild.yml @@ -0,0 +1,26 @@ +name: Xcode +env: + DEVELOPER_DIR: /Applications/Xcode_12.app/Contents/Developer + +on: + push: + branches: [ main ] + +jobs: + build: + + runs-on: macos-latest + strategy: + matrix: + run-config: + - { scheme: 'HTMLString-iOS', destination: 'platform=iOS Simulator,OS=14.0,name=iPhone SE (2nd generation)' } + - { scheme: 'HTMLString-macOS', destination: 'platform=macOS' } + - { scheme: 'HTMLString-tvOS', destination: 'platform=tvOS Simulator,OS=14.0,name=Apple TV' } + + steps: + - name: Checkout Project + uses: actions/checkout@v2 + + - name: build and test + run: xcodebuild clean test -scheme '${{ matrix.run-config['scheme'] }}' -destination '${{ matrix.run-config['destination'] }}' -showBuildTimingSummary + diff --git a/.gitignore b/.gitignore index 3d88011..975c126 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,5 @@ Packages/ Carthage/Build Gemfile Gemfile.lock -**/undocumented.json \ No newline at end of file +**/undocumented.json +.swiftpm/ \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 62d8062..c4a04b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,22 @@ # Updates to HTMLString -## ๐Ÿ”– v5.0.0 โ€” [Date TBD] +## ๐Ÿ”– v6.0.1 โ€” 2020-10-01 +### Changes +- Add Obj-C tests + +### Fixes +- Fix infinite loop when using Obj-C methods + +## ๐Ÿ”– v6.0.0 โ€” 2020-09-28 +### Changes +- Require iOS 9 and Swift 5 +- Removed mutate-in-place methods + +### Fixes +- Improve overall performance +- Fix build warnings with Xcode 12 + +## ๐Ÿ”– v5.0.0 โ€” 2019-06-22 - Swift 5 support - Improve unescaping algorithm speed diff --git a/Configs/HTMLString.plist b/Configs/HTMLString.plist index aa59408..ca23c84 100644 --- a/Configs/HTMLString.plist +++ b/Configs/HTMLString.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.0.2 + $(MARKETING_VERSION) CFBundleSignature ???? CFBundleVersion diff --git a/HTMLString.podspec b/HTMLString.podspec index 94be0e0..074c285 100644 --- a/HTMLString.podspec +++ b/HTMLString.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "HTMLString" - s.version = "5.0.0" + s.version = "6.0.1" s.summary = "Escape and unescape HTML entities in Swift" s.description = <<-DESC HTMLString is a fast library written in Swift that enables your program to add and remove HTML entities in Strings. It supports both ASCII and Unicode. You can use it with 2125 named (`&`), decimal (`€`) and hexadecimal (`🙃`) entities. It has native support for Swift's Extended Grapheme Clusters. Fully unit tested and documented. @@ -11,7 +11,7 @@ DESC s.author = { "Alexis Aubry" => "me@alexaubry.fr" } s.social_media_url = "https://twitter.com/_alexaubry" - s.ios.deployment_target = "8.0" + s.ios.deployment_target = "9.0" s.osx.deployment_target = "10.10" s.watchos.deployment_target = "2.0" s.tvos.deployment_target = "9.0" diff --git a/HTMLString.xcodeproj/project.pbxproj b/HTMLString.xcodeproj/project.pbxproj index b4a3bc9..debea88 100644 --- a/HTMLString.xcodeproj/project.pbxproj +++ b/HTMLString.xcodeproj/project.pbxproj @@ -7,9 +7,12 @@ objects = { /* Begin PBXBuildFile section */ - 55BFFFD71F59574E00F13633 /* TestData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BFFFD61F59574E00F13633 /* TestData.swift */; }; - 55BFFFD81F59574E00F13633 /* TestData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BFFFD61F59574E00F13633 /* TestData.swift */; }; - 55BFFFD91F59574E00F13633 /* TestData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BFFFD61F59574E00F13633 /* TestData.swift */; }; + 4238F742252447BE00AD5902 /* HTMLStringObjcTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4238F741252447BE00AD5902 /* HTMLStringObjcTests.m */; }; + 4238F743252447BE00AD5902 /* HTMLStringObjcTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4238F741252447BE00AD5902 /* HTMLStringObjcTests.m */; }; + 4238F744252447BE00AD5902 /* HTMLStringObjcTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4238F741252447BE00AD5902 /* HTMLStringObjcTests.m */; }; + 55BFFFD71F59574E00F13633 /* Bundle+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BFFFD61F59574E00F13633 /* Bundle+Helpers.swift */; }; + 55BFFFD81F59574E00F13633 /* Bundle+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BFFFD61F59574E00F13633 /* Bundle+Helpers.swift */; }; + 55BFFFD91F59574E00F13633 /* Bundle+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BFFFD61F59574E00F13633 /* Bundle+Helpers.swift */; }; 5E441EB81E525FCA0041CF34 /* HTMLString.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_9 /* HTMLString.swift */; }; 5E441EB91E525FCA0041CF34 /* Mappings.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_10 /* Mappings.swift */; }; 5E441EE21E5260980041CF34 /* HTMLString.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_9 /* HTMLString.swift */; }; @@ -28,6 +31,9 @@ 5E441F211E526DD70041CF34 /* NSString+HTMLString.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_11 /* NSString+HTMLString.swift */; }; 5E441F221E526DD70041CF34 /* NSString+HTMLString.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_11 /* NSString+HTMLString.swift */; }; 5E441F231E526DD80041CF34 /* NSString+HTMLString.swift in Sources */ = {isa = PBXBuildFile; fileRef = OBJ_11 /* NSString+HTMLString.swift */; }; + 5E9B95E125261FDF00E99B03 /* large-text.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5E9B95E025261FDF00E99B03 /* large-text.txt */; }; + 5E9B95E225261FDF00E99B03 /* large-text.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5E9B95E025261FDF00E99B03 /* large-text.txt */; }; + 5E9B95E325261FDF00E99B03 /* large-text.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5E9B95E025261FDF00E99B03 /* large-text.txt */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -55,7 +61,8 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 55BFFFD61F59574E00F13633 /* TestData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TestData.swift; path = HTMLStringTests/TestData.swift; sourceTree = ""; }; + 4238F741252447BE00AD5902 /* HTMLStringObjcTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = HTMLStringObjcTests.m; path = HTMLStringTests/HTMLStringObjcTests.m; sourceTree = ""; }; + 55BFFFD61F59574E00F13633 /* Bundle+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "Bundle+Helpers.swift"; path = "HTMLStringTests/Bundle+Helpers.swift"; sourceTree = ""; }; 5E441EA91E525F2D0041CF34 /* HTMLString.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = HTMLString.plist; path = Configs/HTMLString.plist; sourceTree = ""; }; 5E441EAA1E525F340041CF34 /* HTMLStringTests.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = HTMLStringTests.plist; path = Configs/HTMLStringTests.plist; sourceTree = ""; }; 5E441EB01E525FB70041CF34 /* HTMLString.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HTMLString.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -65,6 +72,7 @@ 5E441EEF1E5262540041CF34 /* HTMLString-iOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "HTMLString-iOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 5E441EFE1E5262910041CF34 /* HTMLString-tvOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "HTMLString-tvOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 5E441F0D1E52629D0041CF34 /* HTMLString-macOS Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "HTMLString-macOS Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5E9B95E025261FDF00E99B03 /* large-text.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "large-text.txt"; sourceTree = ""; }; OBJ_10 /* Mappings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Mappings.swift; path = HTMLString/Mappings.swift; sourceTree = ""; }; OBJ_11 /* NSString+HTMLString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = "NSString+HTMLString.swift"; path = "HTMLString/NSString+HTMLString.swift"; sourceTree = ""; }; OBJ_14 /* HTMLStringTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = HTMLStringTests.swift; path = HTMLStringTests/HTMLStringTests.swift; sourceTree = ""; }; @@ -153,11 +161,22 @@ name = Tests; sourceTree = ""; }; + 5E9B95DF25261FDF00E99B03 /* Fixtures */ = { + isa = PBXGroup; + children = ( + 5E9B95E025261FDF00E99B03 /* large-text.txt */, + ); + name = Fixtures; + path = HTMLStringTests/Fixtures; + sourceTree = ""; + }; OBJ_12 /* Tests */ = { isa = PBXGroup; children = ( + 5E9B95DF25261FDF00E99B03 /* Fixtures */, OBJ_14 /* HTMLStringTests.swift */, - 55BFFFD61F59574E00F13633 /* TestData.swift */, + 4238F741252447BE00AD5902 /* HTMLStringObjcTests.m */, + 55BFFFD61F59574E00F13633 /* Bundle+Helpers.swift */, ); path = Tests; sourceTree = ""; @@ -364,7 +383,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0820; - LastUpgradeCheck = 1120; + LastUpgradeCheck = 1200; TargetAttributes = { 5E441EAF1E525FB70041CF34 = { CreatedOnToolsVersion = 8.2; @@ -388,17 +407,17 @@ }; 5E441EEE1E5262540041CF34 = { CreatedOnToolsVersion = 8.2; - LastSwiftMigration = 0900; + LastSwiftMigration = 1170; ProvisioningStyle = Manual; }; 5E441EFD1E5262910041CF34 = { CreatedOnToolsVersion = 8.2; - LastSwiftMigration = 0900; + LastSwiftMigration = 1170; ProvisioningStyle = Manual; }; 5E441F0C1E52629D0041CF34 = { CreatedOnToolsVersion = 8.2; - LastSwiftMigration = 0900; + LastSwiftMigration = 1170; ProvisioningStyle = Manual; }; }; @@ -460,6 +479,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 5E9B95E125261FDF00E99B03 /* large-text.txt in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -467,6 +487,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 5E9B95E325261FDF00E99B03 /* large-text.txt in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -474,6 +495,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 5E9B95E225261FDF00E99B03 /* large-text.txt in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -525,7 +547,8 @@ buildActionMask = 2147483647; files = ( 5E441F181E5263C70041CF34 /* HTMLStringTests.swift in Sources */, - 55BFFFD71F59574E00F13633 /* TestData.swift in Sources */, + 55BFFFD71F59574E00F13633 /* Bundle+Helpers.swift in Sources */, + 4238F742252447BE00AD5902 /* HTMLStringObjcTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -534,7 +557,8 @@ buildActionMask = 2147483647; files = ( 5E441F191E5263C70041CF34 /* HTMLStringTests.swift in Sources */, - 55BFFFD91F59574E00F13633 /* TestData.swift in Sources */, + 55BFFFD91F59574E00F13633 /* Bundle+Helpers.swift in Sources */, + 4238F744252447BE00AD5902 /* HTMLStringObjcTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -543,7 +567,8 @@ buildActionMask = 2147483647; files = ( 5E441F1A1E5263C70041CF34 /* HTMLStringTests.swift in Sources */, - 55BFFFD81F59574E00F13633 /* TestData.swift in Sources */, + 55BFFFD81F59574E00F13633 /* Bundle+Helpers.swift in Sources */, + 4238F743252447BE00AD5902 /* HTMLStringObjcTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -615,8 +640,9 @@ GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = Configs/HTMLString.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MARKETING_VERSION = 5.1.0; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-iOS"; PRODUCT_NAME = HTMLString; @@ -674,8 +700,9 @@ GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = Configs/HTMLString.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MARKETING_VERSION = 5.1.0; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-iOS"; PRODUCT_NAME = HTMLString; @@ -738,6 +765,7 @@ INFOPLIST_FILE = Configs/HTMLString.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MARKETING_VERSION = 5.1.0; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-watchOS"; PRODUCT_NAME = HTMLString; @@ -796,6 +824,7 @@ INFOPLIST_FILE = Configs/HTMLString.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MARKETING_VERSION = 5.1.0; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-watchOS"; PRODUCT_NAME = HTMLString; @@ -859,6 +888,7 @@ INFOPLIST_FILE = Configs/HTMLString.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MARKETING_VERSION = 5.1.0; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-tvOS"; PRODUCT_NAME = HTMLString; @@ -917,6 +947,7 @@ INFOPLIST_FILE = Configs/HTMLString.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MARKETING_VERSION = 5.1.0; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-tvOS"; PRODUCT_NAME = HTMLString; @@ -981,6 +1012,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; + MARKETING_VERSION = 5.1.0; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-macOS"; PRODUCT_NAME = HTMLString; @@ -1037,6 +1069,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; + MARKETING_VERSION = 5.1.0; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-macOS"; PRODUCT_NAME = HTMLString; @@ -1088,7 +1121,6 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = Configs/HTMLStringTests.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-iOS-Tests"; @@ -1096,6 +1128,8 @@ PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "HTMLString_Tests-Swift.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_SWIFT3_OBJC_INFERENCE = Off; SWIFT_VERSION = 5.0; }; @@ -1136,13 +1170,13 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = Configs/HTMLStringTests.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-iOS-Tests"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = iphoneos; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "HTMLString_Tests-Swift.h"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_SWIFT3_OBJC_INFERENCE = Off; SWIFT_VERSION = 5.0; @@ -1197,9 +1231,10 @@ PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = appletvos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "HTMLString_Tests-Swift.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_SWIFT3_OBJC_INFERENCE = Off; SWIFT_VERSION = 5.0; - TVOS_DEPLOYMENT_TARGET = 10.1; }; name = Debug; }; @@ -1245,10 +1280,10 @@ PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = appletvos; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "HTMLString_Tests-Swift.h"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_SWIFT3_OBJC_INFERENCE = Off; SWIFT_VERSION = 5.0; - TVOS_DEPLOYMENT_TARGET = 10.1; VALIDATE_PRODUCT = YES; }; name = Release; @@ -1294,12 +1329,13 @@ GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = Configs/HTMLStringTests.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.12; MTL_ENABLE_DEBUG_INFO = YES; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-macOS-Tests"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "HTMLString_Tests-Swift.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_SWIFT3_OBJC_INFERENCE = Off; SWIFT_VERSION = 5.0; }; @@ -1342,11 +1378,11 @@ GCC_WARN_UNUSED_VARIABLE = YES; INFOPLIST_FILE = Configs/HTMLStringTests.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.12; MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.HTMLString.HTMLString-macOS-Tests"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OBJC_INTERFACE_HEADER_NAME = "HTMLString_Tests-Swift.h"; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_SWIFT3_OBJC_INFERENCE = Off; SWIFT_VERSION = 5.0; @@ -1369,6 +1405,7 @@ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -1389,7 +1426,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.10; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = "-DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1417,6 +1453,7 @@ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -1435,7 +1472,6 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.10; OTHER_SWIFT_FLAGS = "-DXcode"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = macosx; diff --git a/HTMLString.xcodeproj/xcshareddata/xcschemes/HTMLString-iOS.xcscheme b/HTMLString.xcodeproj/xcshareddata/xcschemes/HTMLString-iOS.xcscheme index 06f1d1e..b78ab81 100644 --- a/HTMLString.xcodeproj/xcshareddata/xcschemes/HTMLString-iOS.xcscheme +++ b/HTMLString.xcodeproj/xcshareddata/xcschemes/HTMLString-iOS.xcscheme @@ -1,6 +1,6 @@ - HTMLString + HTMLString Swift 5.0 - - Build Status - CocoaPods @@ -13,7 +10,7 @@ Carthage compatible - Contact : @_alexaubry + Contact : @_alexaubry

@@ -28,11 +25,13 @@ ✅ | Fully unit tested ⚡ | Fast 📚 | [Documented](https://alexaubry.github.io/HTMLString/) -🤖 | [Compatible with Objective-C](https://github.com/alexaubry/HTMLString/tree/master/README.md#objective%2Dc-api) +🤖 | [Compatible with Objective-C](https://github.com/alexaubry/HTMLString/tree/main/README.md#objective%2Dc-api) ## Supported Platforms -- iOS 8.0+ +This package requires Swift 5 and Xcode 12. + +- iOS 9.0+ - macOS 10.10+ - tvOS 9.0+ - watchOS 2.0+ @@ -45,7 +44,7 @@ Add this line to your `Package.swift` : ~~~swift -.Package(url: "https://github.com/alexaubry/HTMLString", majorVersion: 5, minor: 0) +.Package(url: "https://github.com/alexaubry/HTMLString", from: "6.0.0") ~~~ ### CocoaPods @@ -53,7 +52,7 @@ Add this line to your `Package.swift` : Add this line to your `Podfile`: ~~~ruby -pod 'HTMLString', '~> 5.0' +pod 'HTMLString', '~> 6.0' ~~~ ### Carthage @@ -61,7 +60,7 @@ pod 'HTMLString', '~> 5.0' Add this line to your Cartfile: ~~~ -github "alexaubry/HTMLString" ~> 5.0 +github "alexaubry/HTMLString" ~> 6.0 ~~~ ## Usage @@ -76,8 +75,8 @@ When a character is not supported into the specified encoding, the library will You can choose between ASCII and Unicode escaping: -- Use the `addingASCIIEntities` property to escape for ASCII-encoded content -- Use the `addingUnicodeEntities` property to escape for Unicode-compatible content +- Use the `addingASCIIEntities` function to escape for ASCII-encoded content +- Use the `addingUnicodeEntities` function to escape for Unicode-compatible content > 💡 **Pro Tip**: When your content supports UTF-8 or UTF-16, use Unicode escaping as it is faster and produces a less bloated output. @@ -87,17 +86,17 @@ You can choose between ASCII and Unicode escaping: import HTMLString let emoji = "My favorite emoji is ๐Ÿ™ƒ" -let escapedEmoji = emoji.addingASCIIEntities // "My favorite emoji is 🙃" -let noNeedToEscapeThatEmoji = emoji.addingUnicodeEntities // "My favorite emoji is ๐Ÿ™ƒ" +let escapedEmoji = emoji.addingASCIIEntities() // "My favorite emoji is 🙃" +let noNeedToEscapeThatEmoji = emoji.addingUnicodeEntities() // "My favorite emoji is ๐Ÿ™ƒ" let snack = "Fish & Chips" -let escapedSnack = snack.addingASCIIEntities // "Fish & Chips" -let weAlsoNeedToEscapeThisSnack = snack.addingUnicodeEntities // "Fish & Chips" +let escapedSnack = snack.addingASCIIEntities() // "Fish & Chips" +let weAlsoNeedToEscapeThisSnack = snack.addingUnicodeEntities() // "Fish & Chips" ~~~ ### 📝 Removing HTML Entities (Unescape) -To remove all the HTML entities from a String, use the `removingHTMLEntities` property. +To remove all the HTML entities from a String, use the `removingHTMLEntities` function. #### Example @@ -105,15 +104,15 @@ To remove all the HTML entities from a String, use the `removingHTMLEntities` pr import HTMLString let escapedEmoji = "My favorite emoji is 🙃" -let emoji = escapedEmoji.removingHTMLEntities // "My favorite emoji is ๐Ÿ™ƒ" +let emoji = escapedEmoji.removingHTMLEntities() // "My favorite emoji is ๐Ÿ™ƒ" let escapedSnack = "Fish & Chips" -let snack = escapedSnack.removingHTMLEntities // "Fish & Chips" +let snack = escapedSnack.removingHTMLEntities() // "Fish & Chips" ~~~ ## Objective-C API -With Obj-C Mix and Match, you can import and use the `HTMLString` module from in Objective-C code. +With Obj-C interoperability, you can import and use the `HTMLString` module from in Objective-C code. The library introduces a set of Objective-C specific APIs as categories on the `NSString` type: @@ -147,7 +146,7 @@ NSString *snack = [escapedSnack stringByRemovingHTMLEntities]; // "Fish & Chips" ## Author -- Alexis Aubry, me@alexaubry.fr +- Alexis Aubry-Akers, hi@alexisonline.dev - You can find me on Twitter: [@_alexaubry](https://twitter.com/_alexaubry) ## License diff --git a/Resources/HTMLEscapes.plist b/Resources/HTMLEscapes.plist deleted file mode 100644 index 2c1f1ac..0000000 Binary files a/Resources/HTMLEscapes.plist and /dev/null differ diff --git a/Sources/HTMLString/HTMLString.swift b/Sources/HTMLString/HTMLString.swift index 83db9b9..ef1895c 100644 --- a/Sources/HTMLString/HTMLString.swift +++ b/Sources/HTMLString/HTMLString.swift @@ -18,29 +18,11 @@ extension String { /// | `a` | `a` | Not escaped (alphanumerical) | /// - public var addingUnicodeEntities: String { - return self.addUnicodeEntities() - } - - /// - /// Replaces every character incompatible with HTML Unicode encoding (UTF-16 or UTF-8) by a decimal HTML entity. - /// - /// ### Examples - /// - /// | String | Result | Format | - /// |--------|--------|--------| - /// | `&` | `&` | Decimal entity (part of the Unicode special characters) | - /// | `ฮฃ` | `ฮฃ` | Not escaped (Unicode compliant) | - /// | `๐Ÿ‡บ๐Ÿ‡ธ` | `๐Ÿ‡บ๐Ÿ‡ธ` | Not escaped (Unicode compliant) | - /// | `a` | `a` | Not escaped (alphanumerical) | - /// - - public func addUnicodeEntities() -> String { - let requiredEscapes: Set = ["!", "\"", "$", "%", "&", "'", "+", ",", "<", "=", ">", "@", "[", "]", "`", "{", "}"] + public func addingUnicodeEntities() -> String { var result = "" for character in self { - if requiredEscapes.contains(character) { + if HTMLStringMappings.unsafeUnicodeCharacters.contains(character) { // One of the required escapes for security reasons result.append(contentsOf: "&#\(character.asciiValue!);") } else { @@ -71,31 +53,12 @@ extension String { /// as it is faster and produces a less bloated and more readable HTML. /// - public var addingASCIIEntities: String { - return self.addASCIIEntities() - } - - /// - /// Replaces every character incompatible with HTML Unicode (UTF-16 or UTF-8) with a decimal HTML entity. - /// - /// ### Examples - /// - /// | String | Result | Format | - /// |--------|--------|--------| - /// | `&` | `&` | Decimal entity (part of the Unicode special characters) | - /// | `ฮฃ` | `ฮฃ` | Not escaped (Unicode compliant) | - /// | `๐Ÿ‡บ๐Ÿ‡ธ` | `๐Ÿ‡บ๐Ÿ‡ธ` | Not escaped (Unicode compliant) | - /// | `a` | `a` | Not escaped (alphanumerical) | - /// - - public func addASCIIEntities() -> String { - let requiredEscapes: Set = ["!", "\"", "$", "%", "&", "'", "+", ",", "<", "=", ">", "@", "[", "]", "`", "{", "}"] - + public func addingASCIIEntities() -> String { var result = "" for character in self { if let asciiiValue = character.asciiValue { - if requiredEscapes.contains(character) { + if HTMLStringMappings.unsafeUnicodeCharacters.contains(character) { // One of the required escapes for security reasons result.append(contentsOf: "&#\(asciiiValue);") } else { @@ -132,7 +95,7 @@ extension String { /// | `&` | `&` | Not an entity | /// - public func removeHTMLEntities() -> String { + public func removingHTMLEntities() -> String { var result = "" var currentIndex = startIndex @@ -166,7 +129,7 @@ extension String { if let unescapedNumber = escapableContent.unescapeAsNumber() { result.append(contentsOf: unescapedNumber) cursorPosition = self.index(semicolonIndex, offsetBy: 1) - } else if let unescapedCharacter = HTMLStringMappings.shared.unescapingTable[String(escapableContent)] { + } else if let unescapedCharacter = HTMLStringMappings.unescapingTable[String(escapableContent)] { result.append(contentsOf: unescapedCharacter) cursorPosition = self.index(semicolonIndex, offsetBy: 1) } else { @@ -181,27 +144,6 @@ extension String { return result } - - /// - /// Returns a copy of the current `String` where every HTML entity is replaced with the matching - /// Unicode character. - /// - /// ### Examples - /// - /// | String | Result | Format | - /// |--------|--------|--------| - /// | `&` | `&` | Keyword entity | - /// | `Σ` | `ฮฃ` | Decimal entity | - /// | `č` | `ฤ` | Hexadecimal entity | - /// | `🇺🇸` | `๐Ÿ‡บ๐Ÿ‡ธ` | Combined decimal entities (extented grapheme cluster) | - /// | `a` | `a` | Not an entity | - /// | `&` | `&` | Not an entity | - /// - - public var removingHTMLEntities: String { - return removeHTMLEntities() - } - } // MARK: - Helpers diff --git a/Sources/HTMLString/Mappings.swift b/Sources/HTMLString/Mappings.swift index 0ed869c..18202e9 100644 --- a/Sources/HTMLString/Mappings.swift +++ b/Sources/HTMLString/Mappings.swift @@ -5,16 +5,11 @@ import Foundation */ class HTMLStringMappings { - - /// The shared mappings. - static let shared = HTMLStringMappings() + /// The unicode characters that always need to be escaped. + static let unsafeUnicodeCharacters: Set = ["!", "\"", "$", "%", "&", "'", "+", ",", "<", "=", ">", "@", "[", "]", "`", "{", "}"] /// The table to unescape an HTML string. - let unescapingTable: [String: String] - - // MARK: - Initialization - - private init() { + static let unescapingTable: [String: String] = { let inputStream: InputStream let unescapingTableData = Data(base64Encoded: HTMLUnescapingTable)! inputStream = InputStream(data: unescapingTableData) @@ -22,12 +17,12 @@ class HTMLStringMappings { inputStream.open() do { - unescapingTable = try PropertyListSerialization.propertyList(with: inputStream, options: [], format: nil) as! [String: String] + return try PropertyListSerialization + .propertyList(with: inputStream, options: [], format: nil) as! [String: String] } catch { - unescapingTable = [:] + return [:] } - } - + }() } /// The table to use for unescaping. diff --git a/Sources/HTMLString/NSString+HTMLString.swift b/Sources/HTMLString/NSString+HTMLString.swift index 4111a0e..1694a5b 100644 --- a/Sources/HTMLString/NSString+HTMLString.swift +++ b/Sources/HTMLString/NSString+HTMLString.swift @@ -1,7 +1,6 @@ import Foundation #if os(iOS) || os(macOS) || os(tvOS) || os(watchOS) - extension NSString { /// @@ -20,7 +19,7 @@ extension NSString { @objc(stringByAddingUnicodeEntities) public func addingUnicodeEntities() -> NSString { - return (self as String).addingUnicodeEntities as NSString + return NSString(string: String(self).addingUnicodeEntities()) } /// @@ -44,7 +43,7 @@ extension NSString { @objc(stringByAddingASCIIEntities) public func addingASCIIEntities() -> NSString { - return (self as String).addingASCIIEntities as NSString + return NSString(string: String(self).addingASCIIEntities()) } /// @@ -65,9 +64,7 @@ extension NSString { @objc(stringByRemovingHTMLEntities) public func removingHTMLEntities() -> NSString { - return (self as String).removingHTMLEntities as NSString + return NSString(string: String(self).removingHTMLEntities()) } - } - #endif diff --git a/Tests/HTMLStringTests/Bundle+Helpers.swift b/Tests/HTMLStringTests/Bundle+Helpers.swift new file mode 100644 index 0000000..257de55 --- /dev/null +++ b/Tests/HTMLStringTests/Bundle+Helpers.swift @@ -0,0 +1,13 @@ +import Foundation + +private final class Token {} + +extension Bundle { + static let testResources: Bundle = { + #if SWIFT_PACKAGE + return Bundle.module + #else + return Bundle(for: Token.self) + #endif + }() +} diff --git a/Tests/HTMLStringTests/Fixtures/large-text.txt b/Tests/HTMLStringTests/Fixtures/large-text.txt new file mode 100644 index 0000000..0481f47 --- /dev/null +++ b/Tests/HTMLStringTests/Fixtures/large-text.txt @@ -0,0 +1,1477 @@ + + + + + + Character Entity Reference Chart + + + + + +
CHARACTER TABULATION +
+ LINE FEED (LF) +
!!!!EXCLAMATION MARK +
"" """QUOTATION MARK +
####NUMBER SIGN +
$$$$DOLLAR SIGN +
%%%%PERCENT SIGN +
&& &&&AMPERSAND +
''''APOSTROPHE +
((((LEFT PARENTHESIS +
))))RIGHT PARENTHESIS +
** ***ASTERISK +
++++PLUS SIGN +
,,,,COMMA +
....FULL STOP +
////SOLIDUS +
::::COLON +
;;;;SEMICOLON +
<< <<<LESS-THAN SIGN +
====EQUALS SIGN +
>> >>>GREATER-THAN SIGN +
????QUESTION MARK +
@@@@COMMERCIAL AT +
[[ [[[LEFT SQUARE BRACKET +
\\\\\REVERSE SOLIDUS +
]] ]]]RIGHT SQUARE BRACKET +
^^^^CIRCUMFLEX ACCENT +
____LOW LINE +
`` ```GRAVE ACCENT +
{{ {{{LEFT CURLY BRACKET +
|| | |||VERTICAL LINE +
}} }}}RIGHT CURLY BRACKET +
ย      NO-BREAK SPACE +
ยก¡¡¡INVERTED EXCLAMATION MARK +
ยข¢¢¢CENT SIGN +
ยฃ£££POUND SIGN +
ยค¤¤¤CURRENCY SIGN +
ยฅ¥¥¥YEN SIGN +
ยฆ¦¦¦BROKEN BAR +
ยง§§§SECTION SIGN +
ยจ¨ ¨ ¨ ¨¨¨DIAERESIS +
ยฉ© ©©©COPYRIGHT SIGN +
ยชªªªFEMININE ORDINAL INDICATOR +
ยซ«««LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +
ยฌ¬¬¬NOT SIGN +
ยญ­­­SOFT HYPHEN +
ยฎ® ® ®®®REGISTERED SIGN +
ยฏ¯ ‾ ¯¯¯MACRON +
ยฐ°°°DEGREE SIGN +
ยฑ± ± ±±±PLUS-MINUS SIGN +
ยฒ²²²SUPERSCRIPT TWO +
ยณ³³³SUPERSCRIPT THREE +
ยด´ ´´´ACUTE ACCENT +
ยตµµµMICRO SIGN +
ยถPILCROW SIGN +
ยท· · ···MIDDLE DOT +
ยธ¸ ¸¸¸CEDILLA +
ยน¹¹¹SUPERSCRIPT ONE +
ยบºººMASCULINE ORDINAL INDICATOR +
ยป»»»RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +
ยผ¼¼¼VULGAR FRACTION ONE QUARTER +
ยฝ½ ½½½VULGAR FRACTION ONE HALF +
ยพ¾¾¾VULGAR FRACTION THREE QUARTERS +
ยฟ¿¿¿INVERTED QUESTION MARK +
ร€ÀÀÀLATIN CAPITAL LETTER A WITH GRAVE +
รÁÁÁLATIN CAPITAL LETTER A WITH ACUTE +
ร‚ÂÂÂLATIN CAPITAL LETTER A WITH CIRCUMFLEX +
รƒÃÃÃLATIN CAPITAL LETTER A WITH TILDE +
ร„ÄÄÄLATIN CAPITAL LETTER A WITH DIAERESIS +
ร…ÅÅÅLATIN CAPITAL LETTER A WITH RING ABOVE +
ร†ÆÆÆLATIN CAPITAL LETTER AE +
ร‡ÇÇÇLATIN CAPITAL LETTER C WITH CEDILLA +
รˆÈÈÈLATIN CAPITAL LETTER E WITH GRAVE +
ร‰ÉÉÉLATIN CAPITAL LETTER E WITH ACUTE +
รŠÊÊÊLATIN CAPITAL LETTER E WITH CIRCUMFLEX +
ร‹ËËËLATIN CAPITAL LETTER E WITH DIAERESIS +
รŒÌÌÌLATIN CAPITAL LETTER I WITH GRAVE +
รÍÍÍLATIN CAPITAL LETTER I WITH ACUTE +
รŽÎÎÎLATIN CAPITAL LETTER I WITH CIRCUMFLEX +
รÏÏÏLATIN CAPITAL LETTER I WITH DIAERESIS +
รÐÐÐLATIN CAPITAL LETTER ETH +
ร‘ÑÑÑLATIN CAPITAL LETTER N WITH TILDE +
ร’ÒÒÒLATIN CAPITAL LETTER O WITH GRAVE +
ร“ÓÓÓLATIN CAPITAL LETTER O WITH ACUTE +
ร”ÔÔÔLATIN CAPITAL LETTER O WITH CIRCUMFLEX +
ร•ÕÕÕLATIN CAPITAL LETTER O WITH TILDE +
ร–ÖÖÖLATIN CAPITAL LETTER O WITH DIAERESIS +
ร—×××MULTIPLICATION SIGN +
ร˜ØØØLATIN CAPITAL LETTER O WITH STROKE +
ร™ÙÙÙLATIN CAPITAL LETTER U WITH GRAVE +
รšÚÚÚLATIN CAPITAL LETTER U WITH ACUTE +
ร›ÛÛÛLATIN CAPITAL LETTER U WITH CIRCUMFLEX +
รœÜÜÜLATIN CAPITAL LETTER U WITH DIAERESIS +
รÝÝÝLATIN CAPITAL LETTER Y WITH ACUTE +
รžÞÞÞLATIN CAPITAL LETTER THORN +
รŸßßßLATIN SMALL LETTER SHARP S +
ร àààLATIN SMALL LETTER A WITH GRAVE +
รกáááLATIN SMALL LETTER A WITH ACUTE +
รขâââLATIN SMALL LETTER A WITH CIRCUMFLEX +
รฃãããLATIN SMALL LETTER A WITH TILDE +
รคäääLATIN SMALL LETTER A WITH DIAERESIS +
รฅåååLATIN SMALL LETTER A WITH RING ABOVE +
รฆæææLATIN SMALL LETTER AE +
รงçççLATIN SMALL LETTER C WITH CEDILLA +
รจèèèLATIN SMALL LETTER E WITH GRAVE +
รฉéééLATIN SMALL LETTER E WITH ACUTE +
รชêêêLATIN SMALL LETTER E WITH CIRCUMFLEX +
รซëëëLATIN SMALL LETTER E WITH DIAERESIS +
รฌìììLATIN SMALL LETTER I WITH GRAVE +
รญíííLATIN SMALL LETTER I WITH ACUTE +
รฎîîîLATIN SMALL LETTER I WITH CIRCUMFLEX +
รฏïïïLATIN SMALL LETTER I WITH DIAERESIS +
รฐðððLATIN SMALL LETTER ETH +
รฑñññLATIN SMALL LETTER N WITH TILDE +
รฒòòòLATIN SMALL LETTER O WITH GRAVE +
รณóóóLATIN SMALL LETTER O WITH ACUTE +
รดôôôLATIN SMALL LETTER O WITH CIRCUMFLEX +
รตõõõLATIN SMALL LETTER O WITH TILDE +
รถöööLATIN SMALL LETTER O WITH DIAERESIS +
รท÷ ÷÷÷DIVISION SIGN +
รธøøøLATIN SMALL LETTER O WITH STROKE +
รนùùùLATIN SMALL LETTER U WITH GRAVE +
รบúúúLATIN SMALL LETTER U WITH ACUTE +
รปûûûLATIN SMALL LETTER U WITH CIRCUMFLEX +
รผüüüLATIN SMALL LETTER U WITH DIAERESIS +
รฝýýýLATIN SMALL LETTER Y WITH ACUTE +
รพþþþLATIN SMALL LETTER THORN +
รฟÿÿÿLATIN SMALL LETTER Y WITH DIAERESIS +
ฤ€ĀĀĀLATIN CAPITAL LETTER A WITH MACRON +
ฤāāāLATIN SMALL LETTER A WITH MACRON +
ฤ‚ĂĂĂLATIN CAPITAL LETTER A WITH BREVE +
ฤƒăăăLATIN SMALL LETTER A WITH BREVE +
ฤ„ĄĄĄLATIN CAPITAL LETTER A WITH OGONEK +
ฤ…ąąąLATIN SMALL LETTER A WITH OGONEK +
ฤ†ĆĆĆLATIN CAPITAL LETTER C WITH ACUTE +
ฤ‡ćććLATIN SMALL LETTER C WITH ACUTE +
ฤˆĈĈĈLATIN CAPITAL LETTER C WITH CIRCUMFLEX +
ฤ‰ĉĉĉLATIN SMALL LETTER C WITH CIRCUMFLEX +
ฤŠĊĊĊLATIN CAPITAL LETTER C WITH DOT ABOVE +
ฤ‹ċċċLATIN SMALL LETTER C WITH DOT ABOVE +
ฤŒČČČLATIN CAPITAL LETTER C WITH CARON +
ฤčččLATIN SMALL LETTER C WITH CARON +
ฤŽĎĎĎLATIN CAPITAL LETTER D WITH CARON +
ฤďďďLATIN SMALL LETTER D WITH CARON +
ฤĐĐĐLATIN CAPITAL LETTER D WITH STROKE +
ฤ‘đđđLATIN SMALL LETTER D WITH STROKE +
ฤ’ĒĒĒLATIN CAPITAL LETTER E WITH MACRON +
ฤ“ēēēLATIN SMALL LETTER E WITH MACRON +
ฤ–ĖĖĖLATIN CAPITAL LETTER E WITH DOT ABOVE +
ฤ—ėėėLATIN SMALL LETTER E WITH DOT ABOVE +
ฤ˜ĘĘĘLATIN CAPITAL LETTER E WITH OGONEK +
ฤ™ęęęLATIN SMALL LETTER E WITH OGONEK +
ฤšĚĚĚLATIN CAPITAL LETTER E WITH CARON +
ฤ›ěěěLATIN SMALL LETTER E WITH CARON +
ฤœĜĜĜLATIN CAPITAL LETTER G WITH CIRCUMFLEX +
ฤĝĝĝLATIN SMALL LETTER G WITH CIRCUMFLEX +
ฤžĞĞĞLATIN CAPITAL LETTER G WITH BREVE +
ฤŸğğğLATIN SMALL LETTER G WITH BREVE +
ฤ ĠĠĠLATIN CAPITAL LETTER G WITH DOT ABOVE +
ฤกġġġLATIN SMALL LETTER G WITH DOT ABOVE +
ฤขĢĢĢLATIN CAPITAL LETTER G WITH CEDILLA +
ฤคĤĤĤLATIN CAPITAL LETTER H WITH CIRCUMFLEX +
ฤฅĥĥĥLATIN SMALL LETTER H WITH CIRCUMFLEX +
ฤฆĦĦĦLATIN CAPITAL LETTER H WITH STROKE +
ฤงħħħLATIN SMALL LETTER H WITH STROKE +
ฤจĨĨĨLATIN CAPITAL LETTER I WITH TILDE +
ฤฉĩĩĩLATIN SMALL LETTER I WITH TILDE +
ฤชĪĪĪLATIN CAPITAL LETTER I WITH MACRON +
ฤซīīīLATIN SMALL LETTER I WITH MACRON +
ฤฎĮĮĮLATIN CAPITAL LETTER I WITH OGONEK +
ฤฏįįįLATIN SMALL LETTER I WITH OGONEK +
ฤฐİİİLATIN CAPITAL LETTER I WITH DOT ABOVE +
ฤฑı ıııLATIN SMALL LETTER DOTLESS I +
ฤฒIJIJIJLATIN CAPITAL LIGATURE IJ +
ฤณijijijLATIN SMALL LIGATURE IJ +
ฤดĴĴĴLATIN CAPITAL LETTER J WITH CIRCUMFLEX +
ฤตĵĵĵLATIN SMALL LETTER J WITH CIRCUMFLEX +
ฤถĶĶĶLATIN CAPITAL LETTER K WITH CEDILLA +
ฤทķķķLATIN SMALL LETTER K WITH CEDILLA +
ฤธĸĸĸLATIN SMALL LETTER KRA +
ฤนĹĹĹLATIN CAPITAL LETTER L WITH ACUTE +
ฤบĺĺĺLATIN SMALL LETTER L WITH ACUTE +
ฤปĻĻĻLATIN CAPITAL LETTER L WITH CEDILLA +
ฤผļļļLATIN SMALL LETTER L WITH CEDILLA +
ฤฝĽĽĽLATIN CAPITAL LETTER L WITH CARON +
ฤพľľľLATIN SMALL LETTER L WITH CARON +
ฤฟĿĿĿLATIN CAPITAL LETTER L WITH MIDDLE DOT +
ล€ŀŀŀLATIN SMALL LETTER L WITH MIDDLE DOT +
ลŁŁŁLATIN CAPITAL LETTER L WITH STROKE +
ล‚łłłLATIN SMALL LETTER L WITH STROKE +
ลƒŃŃŃLATIN CAPITAL LETTER N WITH ACUTE +
ล„ńńńLATIN SMALL LETTER N WITH ACUTE +
ล…ŅŅŅLATIN CAPITAL LETTER N WITH CEDILLA +
ล†ņņņLATIN SMALL LETTER N WITH CEDILLA +
ล‡ŇŇŇLATIN CAPITAL LETTER N WITH CARON +
ลˆňňňLATIN SMALL LETTER N WITH CARON +
ล‰ʼnʼnʼnLATIN SMALL LETTER N PRECEDED BY APOSTROPHE +
ลŠŊŊŊLATIN CAPITAL LETTER ENG +
ล‹ŋŋŋLATIN SMALL LETTER ENG +
ลŒŌŌŌLATIN CAPITAL LETTER O WITH MACRON +
ลōōōLATIN SMALL LETTER O WITH MACRON +
ลŐŐŐLATIN CAPITAL LETTER O WITH DOUBLE ACUTE +
ล‘őőőLATIN SMALL LETTER O WITH DOUBLE ACUTE +
ล’ŒŒŒLATIN CAPITAL LIGATURE OE +
ล“œœœLATIN SMALL LIGATURE OE +
ล”ŔŔŔLATIN CAPITAL LETTER R WITH ACUTE +
ล•ŕŕŕLATIN SMALL LETTER R WITH ACUTE +
ล–ŖŖŖLATIN CAPITAL LETTER R WITH CEDILLA +
ล—ŗŗŗLATIN SMALL LETTER R WITH CEDILLA +
ล˜ŘŘŘLATIN CAPITAL LETTER R WITH CARON +
ล™řřřLATIN SMALL LETTER R WITH CARON +
ลšŚŚŚLATIN CAPITAL LETTER S WITH ACUTE +
ล›śśśLATIN SMALL LETTER S WITH ACUTE +
ลœŜŜŜLATIN CAPITAL LETTER S WITH CIRCUMFLEX +
ลŝŝŝLATIN SMALL LETTER S WITH CIRCUMFLEX +
ลžŞŞŞLATIN CAPITAL LETTER S WITH CEDILLA +
ลŸşşşLATIN SMALL LETTER S WITH CEDILLA +
ล ŠŠŠLATIN CAPITAL LETTER S WITH CARON +
ลกšššLATIN SMALL LETTER S WITH CARON +
ลขŢŢŢLATIN CAPITAL LETTER T WITH CEDILLA +
ลฃţţţLATIN SMALL LETTER T WITH CEDILLA +
ลคŤŤŤLATIN CAPITAL LETTER T WITH CARON +
ลฅťťťLATIN SMALL LETTER T WITH CARON +
ลฆŦŦŦLATIN CAPITAL LETTER T WITH STROKE +
ลงŧŧŧLATIN SMALL LETTER T WITH STROKE +
ลจŨŨŨLATIN CAPITAL LETTER U WITH TILDE +
ลฉũũũLATIN SMALL LETTER U WITH TILDE +
ลชŪŪŪLATIN CAPITAL LETTER U WITH MACRON +
ลซūūūLATIN SMALL LETTER U WITH MACRON +
ลฌŬŬŬLATIN CAPITAL LETTER U WITH BREVE +
ลญŭŭŭLATIN SMALL LETTER U WITH BREVE +
ลฎŮŮŮLATIN CAPITAL LETTER U WITH RING ABOVE +
ลฏůůůLATIN SMALL LETTER U WITH RING ABOVE +
ลฐŰŰŰLATIN CAPITAL LETTER U WITH DOUBLE ACUTE +
ลฑűűűLATIN SMALL LETTER U WITH DOUBLE ACUTE +
ลฒŲŲŲLATIN CAPITAL LETTER U WITH OGONEK +
ลณųųųLATIN SMALL LETTER U WITH OGONEK +
ลดŴŴŴLATIN CAPITAL LETTER W WITH CIRCUMFLEX +
ลตŵŵŵLATIN SMALL LETTER W WITH CIRCUMFLEX +
ลถŶŶŶLATIN CAPITAL LETTER Y WITH CIRCUMFLEX +
ลทŷŷŷLATIN SMALL LETTER Y WITH CIRCUMFLEX +
ลธŸŸŸLATIN CAPITAL LETTER Y WITH DIAERESIS +
ลนŹŹŹLATIN CAPITAL LETTER Z WITH ACUTE +
ลบźźźLATIN SMALL LETTER Z WITH ACUTE +
ลปŻŻŻLATIN CAPITAL LETTER Z WITH DOT ABOVE +
ลผżżżLATIN SMALL LETTER Z WITH DOT ABOVE +
ลฝŽŽŽLATIN CAPITAL LETTER Z WITH CARON +
ลพžžžLATIN SMALL LETTER Z WITH CARON +
ฦ’ƒƒƒLATIN SMALL LETTER F WITH HOOK +
ฦตƵƵƵLATIN CAPITAL LETTER Z WITH STROKE +
วตǵǵǵLATIN SMALL LETTER G WITH ACUTE +
ศทȷȷȷLATIN SMALL LETTER DOTLESS J +
ห†ˆˆˆMODIFIER LETTER CIRCUMFLEX ACCENT +
ห‡ˇ ˇˇˇCARON +
ห˜˘ ˘˘˘BREVE +
ห™˙ ˙˙˙DOT ABOVE +
หš˚˚˚RING ABOVE +
ห›˛˛˛OGONEK +
หœ˜ ˜˜˜SMALL TILDE +
ห˝ ˝˝˝DOUBLE ACUTE ACCENT +
ฬ‘̑̑̑COMBINING INVERTED BREVE +
ฬฒ_̲̲COMBINING LOW LINE +
ฮ‘ΑΑΑGREEK CAPITAL LETTER ALPHA +
ฮ’ΒΒΒGREEK CAPITAL LETTER BETA +
ฮ“ΓΓΓGREEK CAPITAL LETTER GAMMA +
ฮ”ΔΔΔGREEK CAPITAL LETTER DELTA +
ฮ•ΕΕΕGREEK CAPITAL LETTER EPSILON +
ฮ–ΖΖΖGREEK CAPITAL LETTER ZETA +
ฮ—ΗΗΗGREEK CAPITAL LETTER ETA +
ฮ˜ΘΘΘGREEK CAPITAL LETTER THETA +
ฮ™ΙΙΙGREEK CAPITAL LETTER IOTA +
ฮšΚΚΚGREEK CAPITAL LETTER KAPPA +
ฮ›ΛΛΛGREEK CAPITAL LETTER LAMDA +
ฮœΜΜΜGREEK CAPITAL LETTER MU +
ฮΝΝΝGREEK CAPITAL LETTER NU +
ฮžΞΞΞGREEK CAPITAL LETTER XI +
ฮŸΟΟΟGREEK CAPITAL LETTER OMICRON +
ฮ ΠΠΠGREEK CAPITAL LETTER PI +
ฮกΡΡΡGREEK CAPITAL LETTER RHO +
ฮฃΣΣΣGREEK CAPITAL LETTER SIGMA +
ฮคΤΤΤGREEK CAPITAL LETTER TAU +
ฮฅΥΥΥGREEK CAPITAL LETTER UPSILON +
ฮฆΦΦΦGREEK CAPITAL LETTER PHI +
ฮงΧΧΧGREEK CAPITAL LETTER CHI +
ฮจΨΨΨGREEK CAPITAL LETTER PSI +
ฮฉΩΩΩGREEK CAPITAL LETTER OMEGA +
ฮฑαααGREEK SMALL LETTER ALPHA +
ฮฒβββGREEK SMALL LETTER BETA +
ฮณγγγGREEK SMALL LETTER GAMMA +
ฮดδδδGREEK SMALL LETTER DELTA +
ฮตϵ ϵ εεεGREEK SMALL LETTER EPSILON +
ฮถζζζGREEK SMALL LETTER ZETA +
ฮทηηηGREEK SMALL LETTER ETA +
ฮธθθθGREEK SMALL LETTER THETA +
ฮนιιιGREEK SMALL LETTER IOTA +
ฮบκκκGREEK SMALL LETTER KAPPA +
ฮปλλλGREEK SMALL LETTER LAMDA +
ฮผμμμGREEK SMALL LETTER MU +
ฮฝνννGREEK SMALL LETTER NU +
ฮพξξξGREEK SMALL LETTER XI +
ฮฟοοοGREEK SMALL LETTER OMICRON +
ฯ€πππGREEK SMALL LETTER PI +
ฯρρρGREEK SMALL LETTER RHO +
ฯ‚ς ς ςςςGREEK SMALL LETTER FINAL SIGMA +
ฯƒσσσGREEK SMALL LETTER SIGMA +
ฯ„τττGREEK SMALL LETTER TAU +
ฯ…υ υυυGREEK SMALL LETTER UPSILON +
ฯ†φ ϕ ϕφφGREEK SMALL LETTER PHI +
ฯ‡χχχGREEK SMALL LETTER CHI +
ฯˆψψψGREEK SMALL LETTER PSI +
ฯ‰ωωωGREEK SMALL LETTER OMEGA +
ฯ‘ϑ ϑ ϑϑϑGREEK THETA SYMBOL +
ฯ’ϒ ϒϒϒGREEK UPSILON WITH HOOK SYMBOL +
ฯ•ϕϕϕGREEK PHI SYMBOL +
ฯ–ϖ ϖϖϖGREEK PI SYMBOL +
ฯœϜϜϜGREEK LETTER DIGAMMA +
ฯϝ ϝϝϝGREEK SMALL LETTER DIGAMMA +
ฯฐϰ ϰϰϰGREEK KAPPA SYMBOL +
ฯฑϱ ϱϱϱGREEK RHO SYMBOL +
ฯตε ϵϵϵGREEK LUNATE EPSILON SYMBOL +
ฯถ϶ ϶϶϶GREEK REVERSED LUNATE EPSILON SYMBOL +
ะЁЁЁCYRILLIC CAPITAL LETTER IO +
ะ‚ЂЂЂCYRILLIC CAPITAL LETTER DJE +
ะƒЃЃЃCYRILLIC CAPITAL LETTER GJE +
ะ„ЄЄЄCYRILLIC CAPITAL LETTER UKRAINIAN IE +
ะ…ЅЅЅCYRILLIC CAPITAL LETTER DZE +
ะ†ІІІCYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I +
ะ‡ЇЇЇCYRILLIC CAPITAL LETTER YI +
ะˆЈЈЈCYRILLIC CAPITAL LETTER JE +
ะ‰ЉЉЉCYRILLIC CAPITAL LETTER LJE +
ะŠЊЊЊCYRILLIC CAPITAL LETTER NJE +
ะ‹ЋЋЋCYRILLIC CAPITAL LETTER TSHE +
ะŒЌЌЌCYRILLIC CAPITAL LETTER KJE +
ะŽЎЎЎCYRILLIC CAPITAL LETTER SHORT U +
ะЏЏЏCYRILLIC CAPITAL LETTER DZHE +
ะАААCYRILLIC CAPITAL LETTER A +
ะ‘БББCYRILLIC CAPITAL LETTER BE +
ะ’ВВВCYRILLIC CAPITAL LETTER VE +
ะ“ГГГCYRILLIC CAPITAL LETTER GHE +
ะ”ДДДCYRILLIC CAPITAL LETTER DE +
ะ•ЕЕЕCYRILLIC CAPITAL LETTER IE +
ะ–ЖЖЖCYRILLIC CAPITAL LETTER ZHE +
ะ—ЗЗЗCYRILLIC CAPITAL LETTER ZE +
ะ˜ИИИCYRILLIC CAPITAL LETTER I +
ะ™ЙЙЙCYRILLIC CAPITAL LETTER SHORT I +
ะšКККCYRILLIC CAPITAL LETTER KA +
ะ›ЛЛЛCYRILLIC CAPITAL LETTER EL +
ะœМММCYRILLIC CAPITAL LETTER EM +
ะНННCYRILLIC CAPITAL LETTER EN +
ะžОООCYRILLIC CAPITAL LETTER O +
ะŸПППCYRILLIC CAPITAL LETTER PE +
ะ РРРCYRILLIC CAPITAL LETTER ER +
ะกСССCYRILLIC CAPITAL LETTER ES +
ะขТТТCYRILLIC CAPITAL LETTER TE +
ะฃУУУCYRILLIC CAPITAL LETTER U +
ะคФФФCYRILLIC CAPITAL LETTER EF +
ะฅХХХCYRILLIC CAPITAL LETTER HA +
ะฆЦЦЦCYRILLIC CAPITAL LETTER TSE +
ะงЧЧЧCYRILLIC CAPITAL LETTER CHE +
ะจШШШCYRILLIC CAPITAL LETTER SHA +
ะฉЩЩЩCYRILLIC CAPITAL LETTER SHCHA +
ะชЪЪЪCYRILLIC CAPITAL LETTER HARD SIGN +
ะซЫЫЫCYRILLIC CAPITAL LETTER YERU +
ะฌЬЬЬCYRILLIC CAPITAL LETTER SOFT SIGN +
ะญЭЭЭCYRILLIC CAPITAL LETTER E +
ะฎЮЮЮCYRILLIC CAPITAL LETTER YU +
ะฏЯЯЯCYRILLIC CAPITAL LETTER YA +
ะฐаааCYRILLIC SMALL LETTER A +
ะฑбббCYRILLIC SMALL LETTER BE +
ะฒвввCYRILLIC SMALL LETTER VE +
ะณгггCYRILLIC SMALL LETTER GHE +
ะดдддCYRILLIC SMALL LETTER DE +
ะตеееCYRILLIC SMALL LETTER IE +
ะถжжжCYRILLIC SMALL LETTER ZHE +
ะทзззCYRILLIC SMALL LETTER ZE +
ะธиииCYRILLIC SMALL LETTER I +
ะนйййCYRILLIC SMALL LETTER SHORT I +
ะบкккCYRILLIC SMALL LETTER KA +
ะปлллCYRILLIC SMALL LETTER EL +
ะผмммCYRILLIC SMALL LETTER EM +
ะฝнннCYRILLIC SMALL LETTER EN +
ะพоооCYRILLIC SMALL LETTER O +
ะฟпппCYRILLIC SMALL LETTER PE +
ั€рррCYRILLIC SMALL LETTER ER +
ัсссCYRILLIC SMALL LETTER ES +
ั‚тттCYRILLIC SMALL LETTER TE +
ัƒуууCYRILLIC SMALL LETTER U +
ั„фффCYRILLIC SMALL LETTER EF +
ั…хххCYRILLIC SMALL LETTER HA +
ั†цццCYRILLIC SMALL LETTER TSE +
ั‡чччCYRILLIC SMALL LETTER CHE +
ัˆшшшCYRILLIC SMALL LETTER SHA +
ั‰щщщCYRILLIC SMALL LETTER SHCHA +
ัŠъъъCYRILLIC SMALL LETTER HARD SIGN +
ั‹ыыыCYRILLIC SMALL LETTER YERU +
ัŒьььCYRILLIC SMALL LETTER SOFT SIGN +
ัэээCYRILLIC SMALL LETTER E +
ัŽюююCYRILLIC SMALL LETTER YU +
ัяяяCYRILLIC SMALL LETTER YA +
ั‘ёёёCYRILLIC SMALL LETTER IO +
ั’ђђђCYRILLIC SMALL LETTER DJE +
ั“ѓѓѓCYRILLIC SMALL LETTER GJE +
ั”єєєCYRILLIC SMALL LETTER UKRAINIAN IE +
ั•ѕѕѕCYRILLIC SMALL LETTER DZE +
ั–іііCYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +
ั—їїїCYRILLIC SMALL LETTER YI +
ั˜јјјCYRILLIC SMALL LETTER JE +
ั™љљљCYRILLIC SMALL LETTER LJE +
ัšњњњCYRILLIC SMALL LETTER NJE +
ั›ћћћCYRILLIC SMALL LETTER TSHE +
ัœќќќCYRILLIC SMALL LETTER KJE +
ัžўўўCYRILLIC SMALL LETTER SHORT U +
ัŸџџџCYRILLIC SMALL LETTER DZHE +
โ€‚EN SPACE +
โ€ƒEM SPACE +
โ€„THREE-PER-EM SPACE +
โ€…FOUR-PER-EM SPACE +
โ€‡FIGURE SPACE +
โ€ˆPUNCTUATION SPACE +
โ€‰   THIN SPACE +
โ€Š   HAIR SPACE +
โ€‹​ ​ ​ ​ ​ZERO WIDTH SPACE +
โ€ŒZERO WIDTH NON-JOINER +
โ€ZERO WIDTH JOINER +
โ€ŽLEFT-TO-RIGHT MARK +
โ€RIGHT-TO-LEFT MARK +
โ€‐ ‐HYPHEN +
โ€“EN DASH +
โ€”EM DASH +
โ€•HORIZONTAL BAR +
โ€–‖ ‖DOUBLE VERTICAL LINE +
โ€˜‘ ‘LEFT SINGLE QUOTATION MARK +
โ€™’ ’ ’RIGHT SINGLE QUOTATION MARK +
โ€š‚ ‚SINGLE LOW-9 QUOTATION MARK +
โ€œ“ “LEFT DOUBLE QUOTATION MARK +
โ€” ” ”RIGHT DOUBLE QUOTATION MARK +
โ€ž„ „DOUBLE LOW-9 QUOTATION MARK +
โ€ DAGGER +
โ€ก‡ ‡DOUBLE DAGGER +
โ€ข• •BULLET +
โ€ฅTWO DOT LEADER +
โ€ฆ… …HORIZONTAL ELLIPSIS +
โ€ฐPER MILLE SIGN +
โ€ฑPER TEN THOUSAND SIGN +
โ€ฒPRIME +
โ€ณDOUBLE PRIME +
โ€ดTRIPLE PRIME +
โ€ต‵ ‵REVERSED PRIME +
โ€นSINGLE LEFT-POINTING ANGLE QUOTATION MARK +
โ€บSINGLE RIGHT-POINTING ANGLE QUOTATION MARK +
โ€พOVERLINE +
โCARET INSERTION POINT +
โƒHYPHEN BULLET +
โ„FRACTION SLASH +
โREVERSED SEMICOLON +
โ—QUADRUPLE PRIME +
โŸMEDIUM MATHEMATICAL SPACE +
โ WORD JOINER +
โก⁡ ⁡FUNCTION APPLICATION +
โข⁢ ⁢INVISIBLE TIMES +
โฃ⁣ ⁣INVISIBLE SEPARATOR +
โ‚ฌEURO SIGN +
โƒ›⃛ ⃛COMBINING THREE DOTS ABOVE +
โƒœCOMBINING FOUR DOTS ABOVE +
โ„‚ℂ ℂDOUBLE-STRUCK CAPITAL C +
โ„…CARE OF +
โ„ŠSCRIPT SMALL G +
โ„‹ℋ ℋ ℋSCRIPT CAPITAL H +
โ„Œℌ ℌBLACK-LETTER CAPITAL H +
โ„ℍ ℍDOUBLE-STRUCK CAPITAL H +
โ„ŽPLANCK CONSTANT +
โ„ℏ ℏ ℏ ℏPLANCK CONSTANT OVER TWO PI +
โ„ℐ ℐSCRIPT CAPITAL I +
โ„‘ℑ ℑ ℑ ℑBLACK-LETTER CAPITAL I +
โ„’ℒ ℒ ℒSCRIPT CAPITAL L +
โ„“SCRIPT SMALL L +
โ„•ℕ ℕDOUBLE-STRUCK CAPITAL N +
โ„–NUMERO SIGN +
โ„—SOUND RECORDING COPYRIGHT +
โ„˜℘ ℘SCRIPT CAPITAL P +
โ„™ℙ ℙDOUBLE-STRUCK CAPITAL P +
โ„šℚ ℚDOUBLE-STRUCK CAPITAL Q +
โ„›ℛ ℛSCRIPT CAPITAL R +
โ„œℜ ℜ ℜ ℜBLACK-LETTER CAPITAL R +
โ„ℝ ℝDOUBLE-STRUCK CAPITAL R +
โ„žPRESCRIPTION TAKE +
โ„ข™ ™TRADE MARK SIGN +
โ„คℤ ℤDOUBLE-STRUCK CAPITAL Z +
โ„ฆΩOHM SIGN +
โ„งINVERTED OHM SIGN +
โ„จℨ ℨBLACK-LETTER CAPITAL Z +
โ„ฉTURNED GREEK SMALL LETTER IOTA +
โ„ซÅANGSTROM SIGN +
โ„ฌℬ ℬ ℬSCRIPT CAPITAL B +
โ„ญℭ ℭBLACK-LETTER CAPITAL C +
โ„ฏSCRIPT SMALL E +
โ„ฐℰ ℰSCRIPT CAPITAL E +
โ„ฑℱ ℱSCRIPT CAPITAL F +
โ„ณℳ ℳ ℳSCRIPT CAPITAL M +
โ„ดℴ ℴ ℴSCRIPT SMALL O +
โ„ตℵ ℵALEF SYMBOL +
โ„ถBET SYMBOL +
โ„ทGIMEL SYMBOL +
โ„ธDALET SYMBOL +
โ……ⅅ ⅅDOUBLE-STRUCK ITALIC CAPITAL D +
โ…†ⅆ ⅆDOUBLE-STRUCK ITALIC SMALL D +
โ…‡ⅇ ⅇ ⅇDOUBLE-STRUCK ITALIC SMALL E +
โ…ˆⅈ ⅈDOUBLE-STRUCK ITALIC SMALL I +
โ…“VULGAR FRACTION ONE THIRD +
โ…”VULGAR FRACTION TWO THIRDS +
โ…•VULGAR FRACTION ONE FIFTH +
โ…–VULGAR FRACTION TWO FIFTHS +
โ…—VULGAR FRACTION THREE FIFTHS +
โ…˜VULGAR FRACTION FOUR FIFTHS +
โ…™VULGAR FRACTION ONE SIXTH +
โ…šVULGAR FRACTION FIVE SIXTHS +
โ…›VULGAR FRACTION ONE EIGHTH +
โ…œVULGAR FRACTION THREE EIGHTHS +
โ…VULGAR FRACTION FIVE EIGHTHS +
โ…žVULGAR FRACTION SEVEN EIGHTHS +
โ†← ← ← ← ←LEFTWARDS ARROW +
โ†‘↑ ↑ ↑ ↑UPWARDS ARROW +
โ†’→ → → → →RIGHTWARDS ARROW +
โ†“↓ ↓ ↓ ↓DOWNWARDS ARROW +
โ†”↔ ↔ ↔LEFT RIGHT ARROW +
โ†•↕ ↕ ↕UP DOWN ARROW +
โ†–↖ ↖ ↖NORTH WEST ARROW +
โ†—↗ ↗ ↗NORTH EAST ARROW +
โ†˜↘ ↘ ↘SOUTH EAST ARROW +
โ†™↙ ↙ ↙SOUTH WEST ARROW +
โ†š↚ ↚LEFTWARDS ARROW WITH STROKE +
โ†›↛ ↛RIGHTWARDS ARROW WITH STROKE +
โ†↝ ↝RIGHTWARDS WAVE ARROW +
โ†ž↞ ↞LEFTWARDS TWO HEADED ARROW +
โ†ŸUPWARDS TWO HEADED ARROW +
โ† ↠ ↠RIGHTWARDS TWO HEADED ARROW +
โ†กDOWNWARDS TWO HEADED ARROW +
โ†ข↢ ↢LEFTWARDS ARROW WITH TAIL +
โ†ฃ↣ ↣RIGHTWARDS ARROW WITH TAIL +
โ†ค↤ ↤LEFTWARDS ARROW FROM BAR +
โ†ฅ↥ ↥UPWARDS ARROW FROM BAR +
โ†ฆ↦ ↦ ↦RIGHTWARDS ARROW FROM BAR +
โ†ง↧ ↧DOWNWARDS ARROW FROM BAR +
โ†ฉ↩ ↩LEFTWARDS ARROW WITH HOOK +
โ†ช↪ ↪RIGHTWARDS ARROW WITH HOOK +
โ†ซ↫ ↫LEFTWARDS ARROW WITH LOOP +
โ†ฌ↬ ↬RIGHTWARDS ARROW WITH LOOP +
โ†ญ↭ ↭LEFT RIGHT WAVE ARROW +
โ†ฎ↮ ↮LEFT RIGHT ARROW WITH STROKE +
โ†ฐ↰ ↰UPWARDS ARROW WITH TIP LEFTWARDS +
โ†ฑ↱ ↱UPWARDS ARROW WITH TIP RIGHTWARDS +
โ†ฒDOWNWARDS ARROW WITH TIP LEFTWARDS +
โ†ณDOWNWARDS ARROW WITH TIP RIGHTWARDS +
โ†ตDOWNWARDS ARROW WITH CORNER LEFTWARDS +
โ†ถ↶ ↶ANTICLOCKWISE TOP SEMICIRCLE ARROW +
โ†ท↷ ↷CLOCKWISE TOP SEMICIRCLE ARROW +
โ†บ↺ ↺ANTICLOCKWISE OPEN CIRCLE ARROW +
โ†ป↻ ↻CLOCKWISE OPEN CIRCLE ARROW +
โ†ผ↼ ↼ ↼LEFTWARDS HARPOON WITH BARB UPWARDS +
โ†ฝ↽ ↽ ↽LEFTWARDS HARPOON WITH BARB DOWNWARDS +
โ†พ↾ ↾ ↾UPWARDS HARPOON WITH BARB RIGHTWARDS +
โ†ฟ↿ ↿ ↿UPWARDS HARPOON WITH BARB LEFTWARDS +
โ‡€⇀ ⇀ ⇀RIGHTWARDS HARPOON WITH BARB UPWARDS +
โ‡⇁ ⇁ ⇁RIGHTWARDS HARPOON WITH BARB DOWNWARDS +
โ‡‚⇂ ⇂ ⇂DOWNWARDS HARPOON WITH BARB RIGHTWARDS +
โ‡ƒ⇃ ⇃ ⇃DOWNWARDS HARPOON WITH BARB LEFTWARDS +
โ‡„⇄ ⇄ ⇄RIGHTWARDS ARROW OVER LEFTWARDS ARROW +
โ‡…⇅ ⇅UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW +
โ‡†⇆ ⇆ ⇆LEFTWARDS ARROW OVER RIGHTWARDS ARROW +
โ‡‡⇇ ⇇LEFTWARDS PAIRED ARROWS +
โ‡ˆ⇈ ⇈UPWARDS PAIRED ARROWS +
โ‡‰⇉ ⇉RIGHTWARDS PAIRED ARROWS +
โ‡Š⇊ ⇊DOWNWARDS PAIRED ARROWS +
โ‡‹⇋ ⇋ ⇋LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON +
โ‡Œ⇌ ⇌ ⇌RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON +
โ‡⇍ ⇍LEFTWARDS DOUBLE ARROW WITH STROKE +
โ‡Ž⇎ ⇎LEFT RIGHT DOUBLE ARROW WITH STROKE +
โ‡⇏ ⇏RIGHTWARDS DOUBLE ARROW WITH STROKE +
โ‡⇐ ⇐ ⇐LEFTWARDS DOUBLE ARROW +
โ‡‘⇑ ⇑ ⇑UPWARDS DOUBLE ARROW +
โ‡’⇒ ⇒ ⇒ ⇒RIGHTWARDS DOUBLE ARROW +
โ‡“⇓ ⇓ ⇓DOWNWARDS DOUBLE ARROW +
โ‡”⇔ ⇔ ⇔ ⇔LEFT RIGHT DOUBLE ARROW +
โ‡•⇕ ⇕ ⇕UP DOWN DOUBLE ARROW +
โ‡–NORTH WEST DOUBLE ARROW +
โ‡—NORTH EAST DOUBLE ARROW +
โ‡˜SOUTH EAST DOUBLE ARROW +
โ‡™SOUTH WEST DOUBLE ARROW +
โ‡š⇚ ⇚LEFTWARDS TRIPLE ARROW +
โ‡›⇛ ⇛RIGHTWARDS TRIPLE ARROW +
โ‡RIGHTWARDS SQUIGGLE ARROW +
โ‡ค⇤ ⇤LEFTWARDS ARROW TO BAR +
โ‡ฅ⇥ ⇥RIGHTWARDS ARROW TO BAR +
โ‡ต⇵ ⇵DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW +
โ‡ฝLEFTWARDS OPEN-HEADED ARROW +
โ‡พRIGHTWARDS OPEN-HEADED ARROW +
โ‡ฟLEFT RIGHT OPEN-HEADED ARROW +
โˆ€∀ ∀FOR ALL +
โˆ∁ ∁COMPLEMENT +
โˆ‚∂ ∂PARTIAL DIFFERENTIAL +
โˆƒ∃ ∃THERE EXISTS +
โˆ„∄ ∄ ∄THERE DOES NOT EXIST +
โˆ…∅ ∅ ∅ ∅EMPTY SET +
โˆ‡∇ ∇NABLA +
โˆˆ∈ ∈ ∈ ∈ELEMENT OF +
โˆ‰∉ ∉ ∉NOT AN ELEMENT OF +
โˆ‹∋ ∋ ∋ ∋CONTAINS AS MEMBER +
โˆŒ∌ ∌ ∌DOES NOT CONTAIN AS MEMBER +
โˆ∏ ∏N-ARY PRODUCT +
โˆ∐ ∐N-ARY COPRODUCT +
โˆ‘∑ ∑N-ARY SUMMATION +
โˆ’MINUS SIGN +
โˆ“∓ ∓ ∓MINUS-OR-PLUS SIGN +
โˆ”∔ ∔DOT PLUS +
โˆ–∖ ∖ ∖ ∖ ∖SET MINUS +
โˆ—ASTERISK OPERATOR +
โˆ˜∘ ∘RING OPERATOR +
โˆš√ √SQUARE ROOT +
โˆ∝ ∝ ∝ ∝ ∝PROPORTIONAL TO +
โˆžINFINITY +
โˆŸRIGHT ANGLE +
โˆ ∠ ∠ANGLE +
โˆก∡ ∡MEASURED ANGLE +
โˆขSPHERICAL ANGLE +
โˆฃ∣ ∣ ∣ ∣DIVIDES +
โˆค∤ ∤ ∤ ∤DOES NOT DIVIDE +
โˆฅ∥ ∥ ∥ ∥ ∥PARALLEL TO +
โˆฆ∦ ∦ ∦ ∦ ∦NOT PARALLEL TO +
โˆง∧ ∧LOGICAL AND +
โˆจ∨ ∨LOGICAL OR +
โˆฉINTERSECTION +
โˆชUNION +
โˆซ∫ ∫INTEGRAL +
โˆฌDOUBLE INTEGRAL +
โˆญ∭ ∭TRIPLE INTEGRAL +
โˆฎ∮ ∮ ∮CONTOUR INTEGRAL +
โˆฏ∯ ∯SURFACE INTEGRAL +
โˆฐVOLUME INTEGRAL +
โˆฑCLOCKWISE INTEGRAL +
โˆฒ∲ ∲CLOCKWISE CONTOUR INTEGRAL +
โˆณ∳ ∳ANTICLOCKWISE CONTOUR INTEGRAL +
โˆด∴ ∴ ∴THEREFORE +
โˆต∵ ∵ ∵BECAUSE +
โˆถRATIO +
โˆท∷ ∷PROPORTION +
โˆธ∸ ∸DOT MINUS +
โˆบGEOMETRIC PROPORTION +
โˆปHOMOTHETIC +
โˆผ∼ ∼ ∼ ∼TILDE OPERATOR +
โˆฝ∽ ∽REVERSED TILDE +
โˆพ∾ ∾INVERTED LAZY S +
โˆฟSINE WAVE +
โ‰€≀ ≀ ≀WREATH PRODUCT +
โ‰≁ ≁NOT TILDE +
โ‰‚≂ ≂ ≂MINUS TILDE +
โ‰ƒ≃ ≃ ≃ASYMPTOTICALLY EQUAL TO +
โ‰„≄ ≄ ≄NOT ASYMPTOTICALLY EQUAL TO +
โ‰…≅ ≅APPROXIMATELY EQUAL TO +
โ‰†APPROXIMATELY BUT NOT ACTUALLY EQUAL TO +
โ‰‡≇ ≇NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO +
โ‰ˆ≈ ≈ ≈ ≈ ≈ ≈ALMOST EQUAL TO +
โ‰‰≉ ≉ ≉NOT ALMOST EQUAL TO +
โ‰Š≊ ≊ALMOST EQUAL OR EQUAL TO +
โ‰‹TRIPLE TILDE +
โ‰Œ≌ ≌ALL EQUAL TO +
โ‰≍ ≍EQUIVALENT TO +
โ‰Ž≎ ≎ ≎GEOMETRICALLY EQUIVALENT TO +
โ‰≏ ≏ ≏DIFFERENCE BETWEEN +
โ‰≐ ≐ ≐APPROACHES THE LIMIT +
โ‰‘≑ ≑GEOMETRICALLY EQUAL TO +
โ‰’≒ ≒APPROXIMATELY EQUAL TO OR THE IMAGE OF +
โ‰“≓ ≓IMAGE OF OR APPROXIMATELY EQUAL TO +
โ‰”≔ ≔ ≔COLON EQUALS +
โ‰•≕ ≕EQUALS COLON +
โ‰–≖ ≖RING IN EQUAL TO +
โ‰—≗ ≗RING EQUAL TO +
โ‰™ESTIMATES +
โ‰šEQUIANGULAR TO +
โ‰œ≜ ≜DELTA EQUAL TO +
โ‰Ÿ≟ ≟QUESTIONED EQUAL TO +
โ‰ ≠ ≠NOT EQUAL TO +
โ‰ก≡ ≡IDENTICAL TO +
โ‰ข≢ ≢NOT IDENTICAL TO +
โ‰ค≤ ≤LESS-THAN OR EQUAL TO +
โ‰ฅ≥ ≥ ≥GREATER-THAN OR EQUAL TO +
โ‰ฆ≦ ≦ ≦LESS-THAN OVER EQUAL TO +
โ‰ง≧ ≧ ≧GREATER-THAN OVER EQUAL TO +
โ‰จ≨ ≨LESS-THAN BUT NOT EQUAL TO +
โ‰ฉ≩ ≩GREATER-THAN BUT NOT EQUAL TO +
โ‰ช≪ ≪ ≪MUCH LESS-THAN +
โ‰ซ≫ ≫ ≫MUCH GREATER-THAN +
โ‰ฌ≬ ≬BETWEEN +
โ‰ญNOT EQUIVALENT TO +
โ‰ฎ≮ ≮ ≮NOT LESS-THAN +
โ‰ฏ≯ ≯ ≯NOT GREATER-THAN +
โ‰ฐ≰ ≰ ≰NEITHER LESS-THAN NOR EQUAL TO +
โ‰ฑ≱ ≱ ≱NEITHER GREATER-THAN NOR EQUAL TO +
โ‰ฒ≲ ≲ ≲LESS-THAN OR EQUIVALENT TO +
โ‰ณ≳ ≳ ≳GREATER-THAN OR EQUIVALENT TO +
โ‰ด≴ ≴NEITHER LESS-THAN NOR EQUIVALENT TO +
โ‰ต≵ ≵NEITHER GREATER-THAN NOR EQUIVALENT TO +
โ‰ถ≶ ≶ ≶LESS-THAN OR GREATER-THAN +
โ‰ท≷ ≷ ≷GREATER-THAN OR LESS-THAN +
โ‰ธ≸ ≸NEITHER LESS-THAN NOR GREATER-THAN +
โ‰น≹ ≹NEITHER GREATER-THAN NOR LESS-THAN +
โ‰บ≺ ≺ ≺PRECEDES +
โ‰ป≻ ≻ ≻SUCCEEDS +
โ‰ผ≼ ≼ ≼PRECEDES OR EQUAL TO +
โ‰ฝ≽ ≽ ≽SUCCEEDS OR EQUAL TO +
โ‰พ≾ ≾ ≾PRECEDES OR EQUIVALENT TO +
โ‰ฟ≿ ≿ ≿SUCCEEDS OR EQUIVALENT TO +
โŠ€⊀ ⊀ ⊀DOES NOT PRECEDE +
โЁ⊁ ⊁ ⊁DOES NOT SUCCEED +
โŠ‚⊂ ⊂SUBSET OF +
โŠƒ⊃ ⊃ ⊃SUPERSET OF +
โŠ„NOT A SUBSET OF +
โŠ…NOT A SUPERSET OF +
โІ⊆ ⊆ ⊆SUBSET OF OR EQUAL TO +
โЇ⊇ ⊇ ⊇SUPERSET OF OR EQUAL TO +
โŠˆ⊈ ⊈ ⊈NEITHER A SUBSET OF NOR EQUAL TO +
โЉ⊉ ⊉ ⊉NEITHER A SUPERSET OF NOR EQUAL TO +
โŠŠ⊊ ⊊SUBSET OF WITH NOT EQUAL TO +
โŠ‹⊋ ⊋SUPERSET OF WITH NOT EQUAL TO +
โŠMULTISET MULTIPLICATION +
โŠŽ⊎ ⊎MULTISET UNION +
โŠ⊏ ⊏ ⊏SQUARE IMAGE OF +
โА⊐ ⊐ ⊐SQUARE ORIGINAL OF +
โŠ‘⊑ ⊑ ⊑SQUARE IMAGE OF OR EQUAL TO +
โŠ’⊒ ⊒ ⊒SQUARE ORIGINAL OF OR EQUAL TO +
โŠ“⊓ ⊓SQUARE CAP +
โŠ”⊔ ⊔SQUARE CUP +
โŠ•⊕ ⊕CIRCLED PLUS +
โŠ–⊖ ⊖CIRCLED MINUS +
โŠ—⊗ ⊗CIRCLED TIMES +
โŠ˜CIRCLED DIVISION SLASH +
โŠ™⊙ ⊙CIRCLED DOT OPERATOR +
โŠš⊚ ⊚CIRCLED RING OPERATOR +
โŠ›⊛ ⊛CIRCLED ASTERISK OPERATOR +
โŠ⊝ ⊝CIRCLED DASH +
โŠž⊞ ⊞SQUARED PLUS +
โŠŸ⊟ ⊟SQUARED MINUS +
โŠ ⊠ ⊠SQUARED TIMES +
โŠก⊡ ⊡SQUARED DOT OPERATOR +
โŠข⊢ ⊢RIGHT TACK +
โŠฃ⊣ ⊣LEFT TACK +
โŠค⊤ ⊤DOWN TACK +
โŠฅ⊥ ⊥ ⊥ ⊥UP TACK +
โŠงMODELS +
โŠจ⊨ ⊨TRUE +
โŠฉFORCES +
โŠชTRIPLE VERTICAL BAR RIGHT TURNSTILE +
โŠซDOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE +
โŠฌDOES NOT PROVE +
โŠญNOT TRUE +
โŠฎDOES NOT FORCE +
โŠฏNEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE +
โŠฐPRECEDES UNDER RELATION +
โŠฒ⊲ ⊲ ⊲NORMAL SUBGROUP OF +
โŠณ⊳ ⊳ ⊳CONTAINS AS NORMAL SUBGROUP +
โŠด⊴ ⊴ ⊴NORMAL SUBGROUP OF OR EQUAL TO +
โŠต⊵ ⊵ ⊵CONTAINS AS NORMAL SUBGROUP OR EQUAL TO +
โŠถORIGINAL OF +
โŠทIMAGE OF +
โŠธ⊸ ⊸MULTIMAP +
โŠนHERMITIAN CONJUGATE MATRIX +
โŠบ⊺ ⊺INTERCALATE +
โŠปXOR +
โŠฝNOR +
โŠพRIGHT ANGLE WITH ARC +
โŠฟRIGHT TRIANGLE +
โ‹€⋀ ⋀ ⋀N-ARY LOGICAL AND +
โ‹⋁ ⋁ ⋁N-ARY LOGICAL OR +
โ‹‚⋂ ⋂ ⋂N-ARY INTERSECTION +
โ‹ƒ⋃ ⋃ ⋃N-ARY UNION +
โ‹„⋄ ⋄ ⋄DIAMOND OPERATOR +
โ‹…DOT OPERATOR +
โ‹†⋆ ⋆STAR OPERATOR +
โ‹‡⋇ ⋇DIVISION TIMES +
โ‹ˆBOWTIE +
โ‹‰LEFT NORMAL FACTOR SEMIDIRECT PRODUCT +
โ‹ŠRIGHT NORMAL FACTOR SEMIDIRECT PRODUCT +
โ‹‹⋋ ⋋LEFT SEMIDIRECT PRODUCT +
โ‹Œ⋌ ⋌RIGHT SEMIDIRECT PRODUCT +
โ‹⋍ ⋍REVERSED TILDE EQUALS +
โ‹Ž⋎ ⋎CURLY LOGICAL OR +
โ‹⋏ ⋏CURLY LOGICAL AND +
โ‹⋐ ⋐DOUBLE SUBSET +
โ‹‘⋑ ⋑DOUBLE SUPERSET +
โ‹’DOUBLE INTERSECTION +
โ‹“DOUBLE UNION +
โ‹”⋔ ⋔PITCHFORK +
โ‹•EQUAL AND PARALLEL TO +
โ‹–⋖ ⋖LESS-THAN WITH DOT +
โ‹—⋗ ⋗GREATER-THAN WITH DOT +
โ‹˜VERY MUCH LESS-THAN +
โ‹™⋙ ⋙VERY MUCH GREATER-THAN +
โ‹š⋚ ⋚ ⋚LESS-THAN EQUAL TO OR GREATER-THAN +
โ‹›⋛ ⋛ ⋛GREATER-THAN EQUAL TO OR LESS-THAN +
โ‹ž⋞ ⋞EQUAL TO OR PRECEDES +
โ‹Ÿ⋟ ⋟EQUAL TO OR SUCCEEDS +
โ‹ ⋠ ⋠DOES NOT PRECEDE OR EQUAL +
โ‹ก⋡ ⋡DOES NOT SUCCEED OR EQUAL +
โ‹ข⋢ ⋢NOT SQUARE IMAGE OF OR EQUAL TO +
โ‹ฃ⋣ ⋣NOT SQUARE ORIGINAL OF OR EQUAL TO +
โ‹ฆLESS-THAN BUT NOT EQUIVALENT TO +
โ‹งGREATER-THAN BUT NOT EQUIVALENT TO +
โ‹จ⋨ ⋨PRECEDES BUT NOT EQUIVALENT TO +
โ‹ฉ⋩ ⋩SUCCEEDS BUT NOT EQUIVALENT TO +
โ‹ช⋪ ⋪ ⋪NOT NORMAL SUBGROUP OF +
โ‹ซ⋫ ⋫ ⋫DOES NOT CONTAIN AS NORMAL SUBGROUP +
โ‹ฌ⋬ ⋬ ⋬NOT NORMAL SUBGROUP OF OR EQUAL TO +
โ‹ญ⋭ ⋭ ⋭DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL +
โ‹ฎVERTICAL ELLIPSIS +
โ‹ฏMIDLINE HORIZONTAL ELLIPSIS +
โ‹ฐUP RIGHT DIAGONAL ELLIPSIS +
โ‹ฑDOWN RIGHT DIAGONAL ELLIPSIS +
โ‹ฒELEMENT OF WITH LONG HORIZONTAL STROKE +
โ‹ณELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE +
โ‹ดSMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE +
โ‹ตELEMENT OF WITH DOT ABOVE +
โ‹ถELEMENT OF WITH OVERBAR +
โ‹ทSMALL ELEMENT OF WITH OVERBAR +
โ‹นELEMENT OF WITH TWO HORIZONTAL STROKES +
โ‹บCONTAINS WITH LONG HORIZONTAL STROKE +
โ‹ปCONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE +
โ‹ผSMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE +
โ‹ฝCONTAINS WITH OVERBAR +
โ‹พSMALL CONTAINS WITH OVERBAR +
โŒ…⌅ ⌅PROJECTIVE +
โŒ†⌆ ⌆PERSPECTIVE +
โŒˆ⌈ ⌈LEFT CEILING +
โŒ‰⌉ ⌉RIGHT CEILING +
โŒŠ⌊ ⌊LEFT FLOOR +
โŒ‹⌋ ⌋RIGHT FLOOR +
โŒŒBOTTOM RIGHT CROP +
โŒBOTTOM LEFT CROP +
โŒŽTOP RIGHT CROP +
โŒTOP LEFT CROP +
โŒREVERSED NOT SIGN +
โŒ’ARC +
โŒ“SEGMENT +
โŒ•TELEPHONE RECORDER +
โŒ–POSITION INDICATOR +
โŒœ⌜ ⌜TOP LEFT CORNER +
โŒ⌝ ⌝TOP RIGHT CORNER +
โŒž⌞ ⌞BOTTOM LEFT CORNER +
โŒŸ⌟ ⌟BOTTOM RIGHT CORNER +
โŒข⌢ ⌢FROWN +
โŒฃ⌣ ⌣SMILE +
โŒญCYLINDRICITY +
โŒฎALL AROUND-PROFILE +
โŒถAPL FUNCTIONAL SYMBOL I-BEAM +
โŒฝAPL FUNCTIONAL SYMBOL CIRCLE STILE +
โŒฟAPL FUNCTIONAL SYMBOL SLASH BAR +
โผRIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW +
โŽฐ⎰ ⎰UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION +
โŽฑ⎱ ⎱UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION +
โŽด⎴ ⎴TOP SQUARE BRACKET +
โŽต⎵ ⎵BOTTOM SQUARE BRACKET +
โŽถBOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET +
โœTOP PARENTHESIS +
โBOTTOM PARENTHESIS +
โžTOP CURLY BRACKET +
โŸBOTTOM CURLY BRACKET +
โขWHITE TRAPEZIUM +
โงELECTRICAL INTERSECTION +
โฃOPEN BOX +
โ“ˆⓈ ⓈCIRCLED LATIN CAPITAL LETTER S +
โ”€─ ─BOX DRAWINGS LIGHT HORIZONTAL +
โ”‚BOX DRAWINGS LIGHT VERTICAL +
โ”ŒBOX DRAWINGS LIGHT DOWN AND RIGHT +
โ”BOX DRAWINGS LIGHT DOWN AND LEFT +
โ””BOX DRAWINGS LIGHT UP AND RIGHT +
โ”˜BOX DRAWINGS LIGHT UP AND LEFT +
โ”œBOX DRAWINGS LIGHT VERTICAL AND RIGHT +
โ”คBOX DRAWINGS LIGHT VERTICAL AND LEFT +
โ”ฌBOX DRAWINGS LIGHT DOWN AND HORIZONTAL +
โ”ดBOX DRAWINGS LIGHT UP AND HORIZONTAL +
โ”ผBOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL +
โ•BOX DRAWINGS DOUBLE HORIZONTAL +
โ•‘BOX DRAWINGS DOUBLE VERTICAL +
โ•’BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE +
โ•“BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE +
โ•”BOX DRAWINGS DOUBLE DOWN AND RIGHT +
โ••BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE +
โ•–BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE +
โ•—BOX DRAWINGS DOUBLE DOWN AND LEFT +
โ•˜BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE +
โ•™BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE +
โ•šBOX DRAWINGS DOUBLE UP AND RIGHT +
โ•›BOX DRAWINGS UP SINGLE AND LEFT DOUBLE +
โ•œBOX DRAWINGS UP DOUBLE AND LEFT SINGLE +
โ•BOX DRAWINGS DOUBLE UP AND LEFT +
โ•žBOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE +
โ•ŸBOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE +
โ• BOX DRAWINGS DOUBLE VERTICAL AND RIGHT +
โ•กBOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE +
โ•ขBOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE +
โ•ฃBOX DRAWINGS DOUBLE VERTICAL AND LEFT +
โ•คBOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE +
โ•ฅBOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE +
โ•ฆBOX DRAWINGS DOUBLE DOWN AND HORIZONTAL +
โ•งBOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE +
โ•จBOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE +
โ•ฉBOX DRAWINGS DOUBLE UP AND HORIZONTAL +
โ•ชBOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE +
โ•ซBOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE +
โ•ฌBOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL +
โ–€UPPER HALF BLOCK +
โ–„LOWER HALF BLOCK +
โ–ˆFULL BLOCK +
โ–‘LIGHT SHADE +
โ–’MEDIUM SHADE +
โ–“DARK SHADE +
โ–ก□ □ □WHITE SQUARE +
โ–ช▪ ▪ ▪ ▪BLACK SMALL SQUARE +
โ–ซWHITE SMALL SQUARE +
โ–ญWHITE RECTANGLE +
โ–ฎBLACK VERTICAL RECTANGLE +
โ–ฑWHITE PARALLELOGRAM +
โ–ณ△ △WHITE UP-POINTING TRIANGLE +
โ–ด▴ ▴BLACK UP-POINTING SMALL TRIANGLE +
โ–ต▵ ▵WHITE UP-POINTING SMALL TRIANGLE +
โ–ธ▸ ▸BLACK RIGHT-POINTING SMALL TRIANGLE +
โ–น▹ ▹WHITE RIGHT-POINTING SMALL TRIANGLE +
โ–ฝ▽ ▽WHITE DOWN-POINTING TRIANGLE +
โ–พ▾ ▾BLACK DOWN-POINTING SMALL TRIANGLE +
โ–ฟ▿ ▿WHITE DOWN-POINTING SMALL TRIANGLE +
โ—‚◂ ◂BLACK LEFT-POINTING SMALL TRIANGLE +
โ—ƒ◃ ◃WHITE LEFT-POINTING SMALL TRIANGLE +
โ—Š◊ ◊LOZENGE +
โ—‹WHITE CIRCLE +
โ—ฌWHITE UP-POINTING TRIANGLE WITH DOT +
โ—ฏ◯ ◯LARGE CIRCLE +
โ—ธUPPER LEFT TRIANGLE +
โ—นUPPER RIGHT TRIANGLE +
โ—บLOWER LEFT TRIANGLE +
โ—ปWHITE MEDIUM SQUARE +
โ—ผBLACK MEDIUM SQUARE +
โ˜…★ ★BLACK STAR +
โ˜†WHITE STAR +
โ˜ŽBLACK TELEPHONE +
โ™€FEMALE SIGN +
โ™‚MALE SIGN +
โ™ ♠ ♠BLACK SPADE SUIT +
โ™ฃ♣ ♣BLACK CLUB SUIT +
โ™ฅ♥ ♥BLACK HEART SUIT +
โ™ฆ♦ ♦BLACK DIAMOND SUIT +
โ™ชEIGHTH NOTE +
โ™ญMUSIC FLAT SIGN +
โ™ฎ♮ ♮MUSIC NATURAL SIGN +
โ™ฏMUSIC SHARP SIGN +
โœ“✓ ✓CHECK MARK +
โœ—BALLOT X +
โœ ✠ ✠MALTESE CROSS +
โœถSIX POINTED BLACK STAR +
โ˜LIGHT VERTICAL BAR +
โฒLIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT +
โณLIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT +
โŸฆ⟦ ⟦MATHEMATICAL LEFT WHITE SQUARE BRACKET +
โŸง⟧ ⟧MATHEMATICAL RIGHT WHITE SQUARE BRACKET +
โŸจ⟨ ⟨ ⟨MATHEMATICAL LEFT ANGLE BRACKET +
โŸฉ⟩ ⟩ ⟩MATHEMATICAL RIGHT ANGLE BRACKET +
โŸชMATHEMATICAL LEFT DOUBLE ANGLE BRACKET +
โŸซMATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +
โŸฌMATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET +
โŸญMATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET +
โŸต⟵ ⟵ ⟵LONG LEFTWARDS ARROW +
โŸถ⟶ ⟶ ⟶LONG RIGHTWARDS ARROW +
โŸท⟷ ⟷ ⟷LONG LEFT RIGHT ARROW +
โŸธ⟸ ⟸ ⟸LONG LEFTWARDS DOUBLE ARROW +
โŸน⟹ ⟹ ⟹LONG RIGHTWARDS DOUBLE ARROW +
โŸบ⟺ ⟺ ⟺LONG LEFT RIGHT DOUBLE ARROW +
โŸผ⟼ ⟼LONG RIGHTWARDS ARROW FROM BAR +
โŸฟLONG RIGHTWARDS SQUIGGLE ARROW +
โค‚LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE +
โคƒRIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE +
โค„LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE +
โค…RIGHTWARDS TWO-HEADED ARROW FROM BAR +
โคŒLEFTWARDS DOUBLE DASH ARROW +
โค⤍ ⤍RIGHTWARDS DOUBLE DASH ARROW +
โคŽLEFTWARDS TRIPLE DASH ARROW +
โค⤏ ⤏RIGHTWARDS TRIPLE DASH ARROW +
โค⤐ ⤐RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW +
โค‘RIGHTWARDS ARROW WITH DOTTED STEM +
โค’UPWARDS ARROW TO BAR +
โค“DOWNWARDS ARROW TO BAR +
โค–RIGHTWARDS TWO-HEADED ARROW WITH TAIL +
โค™LEFTWARDS ARROW-TAIL +
โคšRIGHTWARDS ARROW-TAIL +
โค›LEFTWARDS DOUBLE ARROW-TAIL +
โคœRIGHTWARDS DOUBLE ARROW-TAIL +
โคLEFTWARDS ARROW TO BLACK DIAMOND +
โคžRIGHTWARDS ARROW TO BLACK DIAMOND +
โคŸLEFTWARDS ARROW FROM BAR TO BLACK DIAMOND +
โค RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND +
โคฃNORTH WEST ARROW WITH HOOK +
โคคNORTH EAST ARROW WITH HOOK +
โคฅ⤥ ⤥SOUTH EAST ARROW WITH HOOK +
โคฆ⤦ ⤦SOUTH WEST ARROW WITH HOOK +
โคงNORTH WEST ARROW AND NORTH EAST ARROW +
โคจ⤨ ⤨NORTH EAST ARROW AND SOUTH EAST ARROW +
โคฉ⤩ ⤩SOUTH EAST ARROW AND SOUTH WEST ARROW +
โคชSOUTH WEST ARROW AND NORTH WEST ARROW +
โคณWAVE ARROW POINTING DIRECTLY RIGHT +
โคตARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS +
โคถARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS +
โคทARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS +
โคธRIGHT-SIDE ARC CLOCKWISE ARROW +
โคนLEFT-SIDE ARC ANTICLOCKWISE ARROW +
โคผTOP ARC CLOCKWISE ARROW WITH MINUS +
โคฝTOP ARC ANTICLOCKWISE ARROW WITH PLUS +
โฅ…RIGHTWARDS ARROW WITH PLUS BELOW +
โฅˆLEFT RIGHT ARROW THROUGH SMALL CIRCLE +
โฅ‰UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE +
โฅŠLEFT BARB UP RIGHT BARB DOWN HARPOON +
โฅ‹LEFT BARB DOWN RIGHT BARB UP HARPOON +
โฅŽLEFT BARB UP RIGHT BARB UP HARPOON +
โฅUP BARB RIGHT DOWN BARB RIGHT HARPOON +
โฅLEFT BARB DOWN RIGHT BARB DOWN HARPOON +
โฅ‘UP BARB LEFT DOWN BARB LEFT HARPOON +
โฅ’LEFTWARDS HARPOON WITH BARB UP TO BAR +
โฅ“RIGHTWARDS HARPOON WITH BARB UP TO BAR +
โฅ”UPWARDS HARPOON WITH BARB RIGHT TO BAR +
โฅ•DOWNWARDS HARPOON WITH BARB RIGHT TO BAR +
โฅ–LEFTWARDS HARPOON WITH BARB DOWN TO BAR +
โฅ—RIGHTWARDS HARPOON WITH BARB DOWN TO BAR +
โฅ˜UPWARDS HARPOON WITH BARB LEFT TO BAR +
โฅ™DOWNWARDS HARPOON WITH BARB LEFT TO BAR +
โฅšLEFTWARDS HARPOON WITH BARB UP FROM BAR +
โฅ›RIGHTWARDS HARPOON WITH BARB UP FROM BAR +
โฅœUPWARDS HARPOON WITH BARB RIGHT FROM BAR +
โฅDOWNWARDS HARPOON WITH BARB RIGHT FROM BAR +
โฅžLEFTWARDS HARPOON WITH BARB DOWN FROM BAR +
โฅŸRIGHTWARDS HARPOON WITH BARB DOWN FROM BAR +
โฅ UPWARDS HARPOON WITH BARB LEFT FROM BAR +
โฅกDOWNWARDS HARPOON WITH BARB LEFT FROM BAR +
โฅขLEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN +
โฅฃUPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT +
โฅคRIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN +
โฅฅDOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT +
โฅฆLEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP +
โฅงLEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN +
โฅจRIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP +
โฅฉRIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN +
โฅชLEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH +
โฅซLEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH +
โฅฌRIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH +
โฅญRIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH +
โฅฎ⥮ ⥮UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT +
โฅฏ⥯ ⥯DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT +
โฅฐRIGHT DOUBLE ARROW WITH ROUNDED HEAD +
โฅฑEQUALS SIGN ABOVE RIGHTWARDS ARROW +
โฅฒTILDE OPERATOR ABOVE RIGHTWARDS ARROW +
โฅณLEFTWARDS ARROW ABOVE TILDE OPERATOR +
โฅดRIGHTWARDS ARROW ABOVE TILDE OPERATOR +
โฅตRIGHTWARDS ARROW ABOVE ALMOST EQUAL TO +
โฅถLESS-THAN ABOVE LEFTWARDS ARROW +
โฅธGREATER-THAN ABOVE RIGHTWARDS ARROW +
โฅนSUBSET ABOVE RIGHTWARDS ARROW +
โฅปSUPERSET ABOVE LEFTWARDS ARROW +
โฅผLEFT FISH TAIL +
โฅฝRIGHT FISH TAIL +
โฅพUP FISH TAIL +
โฅฟ⥿⥿⥿DOWN FISH TAIL +
โฆ…LEFT WHITE PARENTHESIS +
โฆ†RIGHT WHITE PARENTHESIS +
โฆ‹LEFT SQUARE BRACKET WITH UNDERBAR +
โฆŒRIGHT SQUARE BRACKET WITH UNDERBAR +
โฆLEFT SQUARE BRACKET WITH TICK IN TOP CORNER +
โฆŽRIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +
โฆLEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +
โฆRIGHT SQUARE BRACKET WITH TICK IN TOP CORNER +
โฆ‘LEFT ANGLE BRACKET WITH DOT +
โฆ’RIGHT ANGLE BRACKET WITH DOT +
โฆ“LEFT ARC LESS-THAN BRACKET +
โฆ”RIGHT ARC GREATER-THAN BRACKET +
โฆ•DOUBLE LEFT ARC GREATER-THAN BRACKET +
โฆ–DOUBLE RIGHT ARC LESS-THAN BRACKET +
โฆšVERTICAL ZIGZAG LINE +
โฆœRIGHT ANGLE VARIANT WITH SQUARE +
โฆMEASURED RIGHT ANGLE WITH DOT +
โฆคANGLE WITH UNDERBAR +
โฆฅREVERSED ANGLE WITH UNDERBAR +
โฆฆOBLIQUE ANGLE OPENING UP +
โฆงOBLIQUE ANGLE OPENING DOWN +
โฆจMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT +
โฆฉMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT +
โฆชMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT +
โฆซMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT +
โฆฌMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP +
โฆญMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP +
โฆฎMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN +
โฆฏMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN +
โฆฐREVERSED EMPTY SET +
โฆฑEMPTY SET WITH OVERBAR +
โฆฒEMPTY SET WITH SMALL CIRCLE ABOVE +
โฆณEMPTY SET WITH RIGHT ARROW ABOVE +
โฆดEMPTY SET WITH LEFT ARROW ABOVE +
โฆตCIRCLE WITH HORIZONTAL BAR +
โฆถCIRCLED VERTICAL BAR +
โฆทCIRCLED PARALLEL +
โฆนCIRCLED PERPENDICULAR +
โฆปCIRCLE WITH SUPERIMPOSED X +
โฆผCIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN +
โฆพCIRCLED WHITE BULLET +
โฆฟ⦿⦿⦿CIRCLED BULLET +
โง€CIRCLED LESS-THAN +
โงCIRCLED GREATER-THAN +
โง‚CIRCLE WITH SMALL CIRCLE TO THE RIGHT +
โงƒCIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT +
โง„SQUARED RISING DIAGONAL SLASH +
โง…SQUARED FALLING DIAGONAL SLASH +
โง‰TWO JOINED SQUARES +
โงTRIANGLE WITH SERIFS AT BOTTOM +
โงŽRIGHT TRIANGLE ABOVE LEFT TRIANGLE +
โงLEFT TRIANGLE BESIDE VERTICAL BAR +
โงVERTICAL BAR BESIDE RIGHT TRIANGLE +
โงš∽̱LEFT DOUBLE WIGGLY FENCE +
โงœINCOMPLETE INFINITY +
โงTIE OVER INFINITY +
โงžINFINITY NEGATED WITH VERTICAL BAR +
โงฃEQUALS SIGN AND SLANTED PARALLEL +
โงคEQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE +
โงฅIDENTICAL TO AND SLANTED PARALLEL +
โงซ⧫ ⧫BLACK LOZENGE +
โงดRULE-DELAYED +
โงถSOLIDUS WITH OVERBAR +
โจ€⨀ ⨀N-ARY CIRCLED DOT OPERATOR +
โจ⨁ ⨁N-ARY CIRCLED PLUS OPERATOR +
โจ‚⨂ ⨂N-ARY CIRCLED TIMES OPERATOR +
โจ„⨄ ⨄N-ARY UNION OPERATOR WITH PLUS +
โจ†⨆ ⨆N-ARY SQUARE UNION OPERATOR +
โจŒ⨌ ⨌QUADRUPLE INTEGRAL OPERATOR +
โจFINITE PART INTEGRAL +
โจCIRCULATION FUNCTION +
โจ‘ANTICLOCKWISE INTEGRATION +
โจ’LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE +
โจ“LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE +
โจ”LINE INTEGRATION NOT INCLUDING THE POLE +
โจ•INTEGRAL AROUND A POINT OPERATOR +
โจ–QUATERNION INTEGRAL OPERATOR +
โจ—INTEGRAL WITH LEFTWARDS ARROW WITH HOOK +
โจขPLUS SIGN WITH SMALL CIRCLE ABOVE +
โจฃPLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE +
โจคPLUS SIGN WITH TILDE ABOVE +
โจฅPLUS SIGN WITH DOT BELOW +
โจฆPLUS SIGN WITH TILDE BELOW +
โจงPLUS SIGN WITH SUBSCRIPT TWO +
โจฉMINUS SIGN WITH COMMA ABOVE +
โจชMINUS SIGN WITH DOT BELOW +
โจญPLUS SIGN IN LEFT HALF CIRCLE +
โจฎPLUS SIGN IN RIGHT HALF CIRCLE +
โจฏVECTOR OR CROSS PRODUCT +
โจฐMULTIPLICATION SIGN WITH DOT ABOVE +
โจฑMULTIPLICATION SIGN WITH UNDERBAR +
โจณSMASH PRODUCT +
โจดMULTIPLICATION SIGN IN LEFT HALF CIRCLE +
โจตMULTIPLICATION SIGN IN RIGHT HALF CIRCLE +
โจถCIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT +
โจทMULTIPLICATION SIGN IN DOUBLE CIRCLE +
โจธCIRCLED DIVISION SIGN +
โจนPLUS SIGN IN TRIANGLE +
โจบMINUS SIGN IN TRIANGLE +
โจปMULTIPLICATION SIGN IN TRIANGLE +
โจผ⨼ ⨼INTERIOR PRODUCT +
โจฟ⨿⨿⨿AMALGAMATION OR COPRODUCT +
โฉ€INTERSECTION WITH DOT +
โฉ‚UNION WITH OVERBAR +
โฉƒINTERSECTION WITH OVERBAR +
โฉ„INTERSECTION WITH LOGICAL AND +
โฉ…UNION WITH LOGICAL OR +
โฉ†UNION ABOVE INTERSECTION +
โฉ‡INTERSECTION ABOVE UNION +
โฉˆUNION ABOVE BAR ABOVE INTERSECTION +
โฉ‰INTERSECTION ABOVE BAR ABOVE UNION +
โฉŠUNION BESIDE AND JOINED WITH UNION +
โฉ‹INTERSECTION BESIDE AND JOINED WITH INTERSECTION +
โฉŒCLOSED UNION WITH SERIFS +
โฉCLOSED INTERSECTION WITH SERIFS +
โฉCLOSED UNION WITH SERIFS AND SMASH PRODUCT +
โฉ“DOUBLE LOGICAL AND +
โฉ”DOUBLE LOGICAL OR +
โฉ•TWO INTERSECTING LOGICAL AND +
โฉ–TWO INTERSECTING LOGICAL OR +
โฉ—SLOPING LARGE OR +
โฉ˜SLOPING LARGE AND +
โฉšLOGICAL AND WITH MIDDLE STEM +
โฉ›LOGICAL OR WITH MIDDLE STEM +
โฉœLOGICAL AND WITH HORIZONTAL DASH +
โฉLOGICAL OR WITH HORIZONTAL DASH +
โฉŸLOGICAL AND WITH UNDERBAR +
โฉฆEQUALS SIGN WITH DOT BELOW +
โฉชTILDE OPERATOR WITH DOT ABOVE +
โฉญCONGRUENT WITH DOT ABOVE +
โฉฎEQUALS WITH ASTERISK +
โฉฏALMOST EQUAL TO WITH CIRCUMFLEX ACCENT +
โฉฐAPPROXIMATELY EQUAL OR EQUAL TO +
โฉฑEQUALS SIGN ABOVE PLUS SIGN +
โฉฒPLUS SIGN ABOVE EQUALS SIGN +
โฉณEQUALS SIGN ABOVE TILDE OPERATOR +
โฉดDOUBLE COLON EQUAL +
โฉตTWO CONSECUTIVE EQUALS SIGNS +
โฉท⩷ ⩷EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW +
โฉธEQUIVALENT WITH FOUR DOTS ABOVE +
โฉนLESS-THAN WITH CIRCLE INSIDE +
โฉบGREATER-THAN WITH CIRCLE INSIDE +
โฉปLESS-THAN WITH QUESTION MARK ABOVE +
โฉผGREATER-THAN WITH QUESTION MARK ABOVE +
โฉฝ⩽ ⩽ ⩽LESS-THAN OR SLANTED EQUAL TO +
โฉพ⩾ ⩾ ⩾GREATER-THAN OR SLANTED EQUAL TO +
โฉฟ⩿⩿⩿LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE +
โช€GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE +
โชLESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE +
โช‚GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE +
โชƒLESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT +
โช„GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT +
โช…⪅ ⪅LESS-THAN OR APPROXIMATE +
โช†⪆ ⪆GREATER-THAN OR APPROXIMATE +
โช‡⪇ ⪇LESS-THAN AND SINGLE-LINE NOT EQUAL TO +
โชˆ⪈ ⪈GREATER-THAN AND SINGLE-LINE NOT EQUAL TO +
โช‰⪉ ⪉LESS-THAN AND NOT APPROXIMATE +
โชŠ⪊ ⪊GREATER-THAN AND NOT APPROXIMATE +
โช‹⪋ ⪋LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN +
โชŒ⪌ ⪌GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN +
โชLESS-THAN ABOVE SIMILAR OR EQUAL +
โชŽGREATER-THAN ABOVE SIMILAR OR EQUAL +
โชLESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN +
โชGREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN +
โช‘LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL +
โช’GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL +
โช“LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL +
โช”GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL +
โช•⪕ ⪕SLANTED EQUAL TO OR LESS-THAN +
โช–⪖ ⪖SLANTED EQUAL TO OR GREATER-THAN +
โช—SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE +
โช˜SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE +
โช™DOUBLE-LINE EQUAL TO OR LESS-THAN +
โชšDOUBLE-LINE EQUAL TO OR GREATER-THAN +
โชSIMILAR OR LESS-THAN +
โชžSIMILAR OR GREATER-THAN +
โชŸSIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN +
โช SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN +
โชกDOUBLE NESTED LESS-THAN +
โชขDOUBLE NESTED GREATER-THAN +
โชคGREATER-THAN OVERLAPPING LESS-THAN +
โชฅGREATER-THAN BESIDE LESS-THAN +
โชฆLESS-THAN CLOSED BY CURVE +
โชงGREATER-THAN CLOSED BY CURVE +
โชจLESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL +
โชฉGREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL +
โชชSMALLER THAN +
โชซLARGER THAN +
โชฌSMALLER THAN OR EQUAL TO +
โชญLARGER THAN OR EQUAL TO +
โชฎEQUALS SIGN WITH BUMPY ABOVE +
โชฏ⪯ ⪯ ⪯PRECEDES ABOVE SINGLE-LINE EQUALS SIGN +
โชฐ⪰ ⪰ ⪰SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN +
โชณPRECEDES ABOVE EQUALS SIGN +
โชดSUCCEEDS ABOVE EQUALS SIGN +
โชต⪵ ⪵PRECEDES ABOVE NOT EQUAL TO +
โชถ⪶ ⪶SUCCEEDS ABOVE NOT EQUAL TO +
โชท⪷ ⪷PRECEDES ABOVE ALMOST EQUAL TO +
โชธ⪸ ⪸SUCCEEDS ABOVE ALMOST EQUAL TO +
โชน⪹ ⪹PRECEDES ABOVE NOT ALMOST EQUAL TO +
โชบ⪺ ⪺SUCCEEDS ABOVE NOT ALMOST EQUAL TO +
โชปDOUBLE PRECEDES +
โชผDOUBLE SUCCEEDS +
โชฝSUBSET WITH DOT +
โชพSUPERSET WITH DOT +
โชฟ⪿⪿⪿SUBSET WITH PLUS SIGN BELOW +
โซ€SUPERSET WITH PLUS SIGN BELOW +
โซSUBSET WITH MULTIPLICATION SIGN BELOW +
โซ‚SUPERSET WITH MULTIPLICATION SIGN BELOW +
โซƒSUBSET OF OR EQUAL TO WITH DOT ABOVE +
โซ„SUPERSET OF OR EQUAL TO WITH DOT ABOVE +
โซ…⫅ ⫅SUBSET OF ABOVE EQUALS SIGN +
โซ†⫆ ⫆SUPERSET OF ABOVE EQUALS SIGN +
โซ‡SUBSET OF ABOVE TILDE OPERATOR +
โซˆSUPERSET OF ABOVE TILDE OPERATOR +
โซ‹⫋ ⫋SUBSET OF ABOVE NOT EQUAL TO +
โซŒ⫌ ⫌SUPERSET OF ABOVE NOT EQUAL TO +
โซCLOSED SUBSET +
โซCLOSED SUPERSET +
โซ‘CLOSED SUBSET OR EQUAL TO +
โซ’CLOSED SUPERSET OR EQUAL TO +
โซ“SUBSET ABOVE SUPERSET +
โซ”SUPERSET ABOVE SUBSET +
โซ•SUBSET ABOVE SUBSET +
โซ–SUPERSET ABOVE SUPERSET +
โซ—SUPERSET BESIDE SUBSET +
โซ˜SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET +
โซ™ELEMENT OF OPENING DOWNWARDS +
โซšPITCHFORK WITH TEE TOP +
โซ›TRANSVERSAL INTERSECTION +
โซค⫤ ⫤VERTICAL BAR DOUBLE LEFT TURNSTILE +
โซฆLONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL +
โซงSHORT DOWN TACK WITH OVERBAR +
โซจSHORT UP TACK WITH UNDERBAR +
โซฉSHORT UP TACK ABOVE SHORT DOWN TACK +
โซซDOUBLE UP TACK +
โซฌDOUBLE STROKE NOT SIGN +
โซญREVERSED DOUBLE STROKE NOT SIGN +
โซฎDOES NOT DIVIDE WITH REVERSED NEGATION SLASH +
โซฏVERTICAL LINE WITH CIRCLE ABOVE +
โซฐVERTICAL LINE WITH CIRCLE BELOW +
โซฑDOWN TACK WITH CIRCLE BELOW +
โซฒPARALLEL WITH HORIZONTAL STROKE +
โซณPARALLEL WITH TILDE OPERATOR +
โซฝDOUBLE SOLIDUS OPERATOR +
๏ฌ€LATIN SMALL LIGATURE FF +
๏ฌLATIN SMALL LIGATURE FI +
๏ฌ‚LATIN SMALL LIGATURE FL +
๏ฌƒLATIN SMALL LIGATURE FFI +
๏ฌ„LATIN SMALL LIGATURE FFL +
๐’œ𝒜𝒜𝒜MATHEMATICAL SCRIPT CAPITAL A +
๐’ž𝒞𝒞𝒞MATHEMATICAL SCRIPT CAPITAL C +
๐’Ÿ𝒟𝒟𝒟MATHEMATICAL SCRIPT CAPITAL D +
๐’ข𝒢𝒢𝒢MATHEMATICAL SCRIPT CAPITAL G +
๐’ฅ𝒥𝒥𝒥MATHEMATICAL SCRIPT CAPITAL J +
๐’ฆ𝒦𝒦𝒦MATHEMATICAL SCRIPT CAPITAL K +
๐’ฉ𝒩𝒩𝒩MATHEMATICAL SCRIPT CAPITAL N +
๐’ช𝒪𝒪𝒪MATHEMATICAL SCRIPT CAPITAL O +
๐’ซ𝒫𝒫𝒫MATHEMATICAL SCRIPT CAPITAL P +
๐’ฌ𝒬𝒬𝒬MATHEMATICAL SCRIPT CAPITAL Q +
๐’ฎ𝒮𝒮𝒮MATHEMATICAL SCRIPT CAPITAL S +
๐’ฏ𝒯𝒯𝒯MATHEMATICAL SCRIPT CAPITAL T +
๐’ฐ𝒰𝒰𝒰MATHEMATICAL SCRIPT CAPITAL U +
๐’ฑ𝒱𝒱𝒱MATHEMATICAL SCRIPT CAPITAL V +
๐’ฒ𝒲𝒲𝒲MATHEMATICAL SCRIPT CAPITAL W +
๐’ณ𝒳𝒳𝒳MATHEMATICAL SCRIPT CAPITAL X +
๐’ด𝒴𝒴𝒴MATHEMATICAL SCRIPT CAPITAL Y +
๐’ต𝒵𝒵𝒵MATHEMATICAL SCRIPT CAPITAL Z +
๐’ถ𝒶𝒶𝒶MATHEMATICAL SCRIPT SMALL A +
๐’ท𝒷𝒷𝒷MATHEMATICAL SCRIPT SMALL B +
๐’ธ𝒸𝒸𝒸MATHEMATICAL SCRIPT SMALL C +
๐’น𝒹𝒹𝒹MATHEMATICAL SCRIPT SMALL D +
๐’ป𝒻𝒻𝒻MATHEMATICAL SCRIPT SMALL F +
๐’ฝ𝒽𝒽𝒽MATHEMATICAL SCRIPT SMALL H +
๐’พ𝒾𝒾𝒾MATHEMATICAL SCRIPT SMALL I +
๐’ฟ𝒿𝒿𝒿MATHEMATICAL SCRIPT SMALL J +
๐“€𝓀𝓀𝓀MATHEMATICAL SCRIPT SMALL K +
๐“𝓁𝓁𝓁MATHEMATICAL SCRIPT SMALL L +
๐“‚𝓂𝓂𝓂MATHEMATICAL SCRIPT SMALL M +
๐“ƒ𝓃𝓃𝓃MATHEMATICAL SCRIPT SMALL N +
๐“…𝓅𝓅𝓅MATHEMATICAL SCRIPT SMALL P +
๐“†𝓆𝓆𝓆MATHEMATICAL SCRIPT SMALL Q +
๐“‡𝓇𝓇𝓇MATHEMATICAL SCRIPT SMALL R +
๐“ˆ𝓈𝓈𝓈MATHEMATICAL SCRIPT SMALL S +
๐“‰𝓉𝓉𝓉MATHEMATICAL SCRIPT SMALL T +
๐“Š𝓊𝓊𝓊MATHEMATICAL SCRIPT SMALL U +
๐“‹𝓋𝓋𝓋MATHEMATICAL SCRIPT SMALL V +
๐“Œ𝓌𝓌𝓌MATHEMATICAL SCRIPT SMALL W +
๐“𝓍𝓍𝓍MATHEMATICAL SCRIPT SMALL X +
๐“Ž𝓎𝓎𝓎MATHEMATICAL SCRIPT SMALL Y +
๐“𝓏𝓏𝓏MATHEMATICAL SCRIPT SMALL Z +
๐”„𝔄𝔄𝔄MATHEMATICAL FRAKTUR CAPITAL A +
๐”…𝔅𝔅𝔅MATHEMATICAL FRAKTUR CAPITAL B +
๐”‡𝔇𝔇𝔇MATHEMATICAL FRAKTUR CAPITAL D +
๐”ˆ𝔈𝔈𝔈MATHEMATICAL FRAKTUR CAPITAL E +
๐”‰𝔉𝔉𝔉MATHEMATICAL FRAKTUR CAPITAL F +
๐”Š𝔊𝔊𝔊MATHEMATICAL FRAKTUR CAPITAL G +
๐”𝔍𝔍𝔍MATHEMATICAL FRAKTUR CAPITAL J +
๐”Ž𝔎𝔎𝔎MATHEMATICAL FRAKTUR CAPITAL K +
๐”𝔏𝔏𝔏MATHEMATICAL FRAKTUR CAPITAL L +
๐”𝔐𝔐𝔐MATHEMATICAL FRAKTUR CAPITAL M +
๐”‘𝔑𝔑𝔑MATHEMATICAL FRAKTUR CAPITAL N +
๐”’𝔒𝔒𝔒MATHEMATICAL FRAKTUR CAPITAL O +
๐”“𝔓𝔓𝔓MATHEMATICAL FRAKTUR CAPITAL P +
๐””𝔔𝔔𝔔MATHEMATICAL FRAKTUR CAPITAL Q +
๐”–𝔖𝔖𝔖MATHEMATICAL FRAKTUR CAPITAL S +
๐”—𝔗𝔗𝔗MATHEMATICAL FRAKTUR CAPITAL T +
๐”˜𝔘𝔘𝔘MATHEMATICAL FRAKTUR CAPITAL U +
๐”™𝔙𝔙𝔙MATHEMATICAL FRAKTUR CAPITAL V +
๐”š𝔚𝔚𝔚MATHEMATICAL FRAKTUR CAPITAL W +
๐”›𝔛𝔛𝔛MATHEMATICAL FRAKTUR CAPITAL X +
๐”œ𝔜𝔜𝔜MATHEMATICAL FRAKTUR CAPITAL Y +
๐”ž𝔞𝔞𝔞MATHEMATICAL FRAKTUR SMALL A +
๐”Ÿ𝔟𝔟𝔟MATHEMATICAL FRAKTUR SMALL B +
๐” 𝔠𝔠𝔠MATHEMATICAL FRAKTUR SMALL C +
๐”ก𝔡𝔡𝔡MATHEMATICAL FRAKTUR SMALL D +
๐”ข𝔢𝔢𝔢MATHEMATICAL FRAKTUR SMALL E +
๐”ฃ𝔣𝔣𝔣MATHEMATICAL FRAKTUR SMALL F +
๐”ค𝔤𝔤𝔤MATHEMATICAL FRAKTUR SMALL G +
๐”ฅ𝔥𝔥𝔥MATHEMATICAL FRAKTUR SMALL H +
๐”ฆ𝔦𝔦𝔦MATHEMATICAL FRAKTUR SMALL I +
๐”ง𝔧𝔧𝔧MATHEMATICAL FRAKTUR SMALL J +
๐”จ𝔨𝔨𝔨MATHEMATICAL FRAKTUR SMALL K +
๐”ฉ𝔩𝔩𝔩MATHEMATICAL FRAKTUR SMALL L +
๐”ช𝔪𝔪𝔪MATHEMATICAL FRAKTUR SMALL M +
๐”ซ𝔫𝔫𝔫MATHEMATICAL FRAKTUR SMALL N +
๐”ฌ𝔬𝔬𝔬MATHEMATICAL FRAKTUR SMALL O +
๐”ญ𝔭𝔭𝔭MATHEMATICAL FRAKTUR SMALL P +
๐”ฎ𝔮𝔮𝔮MATHEMATICAL FRAKTUR SMALL Q +
๐”ฏ𝔯𝔯𝔯MATHEMATICAL FRAKTUR SMALL R +
๐”ฐ𝔰𝔰𝔰MATHEMATICAL FRAKTUR SMALL S +
๐”ฑ𝔱𝔱𝔱MATHEMATICAL FRAKTUR SMALL T +
๐”ฒ𝔲𝔲𝔲MATHEMATICAL FRAKTUR SMALL U +
๐”ณ𝔳𝔳𝔳MATHEMATICAL FRAKTUR SMALL V +
๐”ด𝔴𝔴𝔴MATHEMATICAL FRAKTUR SMALL W +
๐”ต𝔵𝔵𝔵MATHEMATICAL FRAKTUR SMALL X +
๐”ถ𝔶𝔶𝔶MATHEMATICAL FRAKTUR SMALL Y +
๐”ท𝔷𝔷𝔷MATHEMATICAL FRAKTUR SMALL Z +
๐”ธ𝔸𝔸𝔸MATHEMATICAL DOUBLE-STRUCK CAPITAL A +
๐”น𝔹𝔹𝔹MATHEMATICAL DOUBLE-STRUCK CAPITAL B +
๐”ป𝔻𝔻𝔻MATHEMATICAL DOUBLE-STRUCK CAPITAL D +
๐”ผ𝔼𝔼𝔼MATHEMATICAL DOUBLE-STRUCK CAPITAL E +
๐”ฝ𝔽𝔽𝔽MATHEMATICAL DOUBLE-STRUCK CAPITAL F +
๐”พ𝔾𝔾𝔾MATHEMATICAL DOUBLE-STRUCK CAPITAL G +
๐•€𝕀𝕀𝕀MATHEMATICAL DOUBLE-STRUCK CAPITAL I +
๐•𝕁𝕁𝕁MATHEMATICAL DOUBLE-STRUCK CAPITAL J +
๐•‚𝕂𝕂𝕂MATHEMATICAL DOUBLE-STRUCK CAPITAL K +
๐•ƒ𝕃𝕃𝕃MATHEMATICAL DOUBLE-STRUCK CAPITAL L +
๐•„𝕄𝕄𝕄MATHEMATICAL DOUBLE-STRUCK CAPITAL M +
๐•†𝕆𝕆𝕆MATHEMATICAL DOUBLE-STRUCK CAPITAL O +
๐•Š𝕊𝕊𝕊MATHEMATICAL DOUBLE-STRUCK CAPITAL S +
๐•‹𝕋𝕋𝕋MATHEMATICAL DOUBLE-STRUCK CAPITAL T +
๐•Œ𝕌𝕌𝕌MATHEMATICAL DOUBLE-STRUCK CAPITAL U +
๐•𝕍𝕍𝕍MATHEMATICAL DOUBLE-STRUCK CAPITAL V +
๐•Ž𝕎𝕎𝕎MATHEMATICAL DOUBLE-STRUCK CAPITAL W +
๐•𝕏𝕏𝕏MATHEMATICAL DOUBLE-STRUCK CAPITAL X +
๐•𝕐𝕐𝕐MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +
๐•’𝕒𝕒𝕒MATHEMATICAL DOUBLE-STRUCK SMALL A +
๐•“𝕓𝕓𝕓MATHEMATICAL DOUBLE-STRUCK SMALL B +
๐•”𝕔𝕔𝕔MATHEMATICAL DOUBLE-STRUCK SMALL C +
๐••𝕕𝕕𝕕MATHEMATICAL DOUBLE-STRUCK SMALL D +
๐•–𝕖𝕖𝕖MATHEMATICAL DOUBLE-STRUCK SMALL E +
๐•—𝕗𝕗𝕗MATHEMATICAL DOUBLE-STRUCK SMALL F +
๐•˜𝕘𝕘𝕘MATHEMATICAL DOUBLE-STRUCK SMALL G +
๐•™𝕙𝕙𝕙MATHEMATICAL DOUBLE-STRUCK SMALL H +
๐•š𝕚𝕚𝕚MATHEMATICAL DOUBLE-STRUCK SMALL I +
๐•›𝕛𝕛𝕛MATHEMATICAL DOUBLE-STRUCK SMALL J +
๐•œ𝕜𝕜𝕜MATHEMATICAL DOUBLE-STRUCK SMALL K +
๐•𝕝𝕝𝕝MATHEMATICAL DOUBLE-STRUCK SMALL L +
๐•ž𝕞𝕞𝕞MATHEMATICAL DOUBLE-STRUCK SMALL M +
๐•Ÿ𝕟𝕟𝕟MATHEMATICAL DOUBLE-STRUCK SMALL N +
๐• 𝕠𝕠𝕠MATHEMATICAL DOUBLE-STRUCK SMALL O +
๐•ก𝕡𝕡𝕡MATHEMATICAL DOUBLE-STRUCK SMALL P +
๐•ข𝕢𝕢𝕢MATHEMATICAL DOUBLE-STRUCK SMALL Q +
๐•ฃ𝕣𝕣𝕣MATHEMATICAL DOUBLE-STRUCK SMALL R +
๐•ค𝕤𝕤𝕤MATHEMATICAL DOUBLE-STRUCK SMALL S +
๐•ฅ𝕥𝕥𝕥MATHEMATICAL DOUBLE-STRUCK SMALL T +
๐•ฆ𝕦𝕦𝕦MATHEMATICAL DOUBLE-STRUCK SMALL U +
๐•ง𝕧𝕧𝕧MATHEMATICAL DOUBLE-STRUCK SMALL V +
๐•จ𝕨𝕨𝕨MATHEMATICAL DOUBLE-STRUCK SMALL W +
๐•ฉ𝕩𝕩𝕩MATHEMATICAL DOUBLE-STRUCK SMALL X +
๐•ช𝕪𝕪𝕪MATHEMATICAL DOUBLE-STRUCK SMALL Y +
๐•ซ𝕫𝕫𝕫MATHEMATICAL DOUBLE-STRUCK SMALL Z +
+ + + diff --git a/Tests/HTMLStringTests/HTMLStringObjcTests.m b/Tests/HTMLStringTests/HTMLStringObjcTests.m new file mode 100644 index 0000000..272ff1b --- /dev/null +++ b/Tests/HTMLStringTests/HTMLStringObjcTests.m @@ -0,0 +1,157 @@ +@import XCTest; +@import HTMLString; + +@interface HTMLStringObjcTests : XCTestCase + +@end + +@implementation HTMLStringObjcTests + +#pragma mark - Escaping + +/// Tests escaping a string for ASCII. +- (void)testStringASCIIEscaping { + NSString * emptyString = [@"" stringByAddingASCIIEntities]; + XCTAssertTrue([emptyString isEqualToString: @""]); + + NSString* namedEscape = [@"Fish & Chips" stringByAddingASCIIEntities]; + XCTAssertTrue([namedEscape isEqualToString: @"Fish & Chips"]); + + NSString* namedDualEscape = [@"a โชฐฬธ b" stringByAddingASCIIEntities]; + XCTAssertTrue([namedDualEscape isEqualToString: @"a ⪰̸ b"]); + + NSString* emojiEscape = [@"Hey ๐Ÿ™ƒ" stringByAddingASCIIEntities]; + XCTAssertTrue([emojiEscape isEqualToString: @"Hey 🙃"]); + + NSString* doubleEmojiEscape = [@"Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June" stringByAddingASCIIEntities]; + XCTAssertTrue([doubleEmojiEscape isEqualToString: @"Going to the 🇺🇸 next June"]); +} + +/// Tests escaping a string for Unicode. +- (void) testStringUnicodeEscaping { + NSString* requiredEscape = [@"Fish & Chips" stringByAddingUnicodeEntities]; + XCTAssertTrue([requiredEscape isEqualToString: @"Fish & Chips"]); + + NSString* namedDualEscape = [@"a โชฐฬธ b" stringByAddingUnicodeEntities]; + XCTAssertTrue([namedDualEscape isEqualToString: @"a โชฐฬธ b"]); + + NSString* emojiEscape = [@"Hey ๐Ÿ™ƒ!" stringByAddingUnicodeEntities]; + XCTAssertTrue([emojiEscape isEqualToString: @"Hey ๐Ÿ™ƒ!"]); + + NSString* doubleEmojiEscape = [@"Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June" stringByAddingUnicodeEntities]; + XCTAssertTrue([doubleEmojiEscape isEqualToString: @"Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June"]); +} + +#pragma mark - Unescaping + +/// Tests unescaping strings. +-(void) testUnescaping { + NSString* withoutMarker = [@"Hello, world." stringByRemovingHTMLEntities]; + XCTAssertTrue([withoutMarker isEqualToString: @"Hello, world."]); + + NSString* noSemicolon = [@"Fish & Chips" stringByRemovingHTMLEntities]; + XCTAssertTrue([noSemicolon isEqualToString: @"Fish & Chips"]); + + NSString* decimal = [@"My phone number starts with a 1" stringByRemovingHTMLEntities]; + + XCTAssertTrue([decimal isEqualToString: @"My phone number starts with a 1"]); + + NSString* invalidDecimal = [@"My phone number starts with a _9;!" stringByRemovingHTMLEntities]; + XCTAssertTrue(invalidDecimal, "My phone number starts with a _9;!"); + + NSString* hex = [@"Let's meet at the café" stringByRemovingHTMLEntities]; + XCTAssertTrue([hex isEqualToString: @"Let's meet at the cafรฉ"]); + + NSString* invalidHex = [@"Let's meet at the caf&#xzi;!" stringByRemovingHTMLEntities]; + XCTAssertTrue([invalidHex isEqualToString: @"Let's meet at the caf&#xzi;!"]); + + NSString* invalidUnicodePoint = [@"What is this character ? -> �" stringByRemovingHTMLEntities]; + XCTAssertTrue([invalidUnicodePoint isEqualToString: @"What is this character ? -> �"]); + + NSString* badSequence = [@"I love &swift;" stringByRemovingHTMLEntities]; + XCTAssertTrue([badSequence isEqualToString: @"I love &swift;"]); + + NSString* goodSequence = [@"Do you know ℵ?" stringByRemovingHTMLEntities]; + XCTAssertTrue([goodSequence isEqualToString: @"Do you know โ„ต?"]); + + NSString* twoSequences = [@"a && b" stringByRemovingHTMLEntities]; + XCTAssertTrue([twoSequences isEqualToString: @"a && b"]); + + NSString* doubleEmojiEscape = [@"Going to the 🇺🇸 next June" stringByRemovingHTMLEntities]; + XCTAssertTrue([doubleEmojiEscape isEqualToString: @"Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June"]); + + NSString* textInTheMiddle = [@"Fish & Chips tastes "great\"" stringByRemovingHTMLEntities]; + XCTAssertTrue([textInTheMiddle isEqualToString: @"Fish & Chips tastes \"great\""]); +} + +#pragma mark - Open Data + +-(void) testThatItUnescapesSampleData { + NSString* review = @"44 Fotos und 68 Tipps von 567 Besucher bei NETA Mexican Street Food anzeigen. "Not sharing the enthusiasm of the other reviewers. The tacos were...""; + + NSString* expectedReview = @"44 Fotos und 68 Tipps von 567 Besucher bei NETA Mexican Street Food anzeigen. \"Not sharing the enthusiasm of the other reviewers. The tacos were...\""; + + XCTAssertTrue([[review stringByRemovingHTMLEntities] isEqualToString: expectedReview]); + + NSString* foursquare = @"NETA Mexican Street Food, Weinbergsweg 5, Berlin, Berlin, neta mexican street food, Burritos, Mexikanisch, Nachspeise, Abendessen & more"; + NSString* expectedFoursquare = @"NETA Mexican Street Food, Weinbergsweg 5, Berlin, Berlin, neta mexican street food, Burritos, Mexikanisch, Nachspeise, Abendessen & more"; + XCTAssertTrue([[foursquare stringByRemovingHTMLEntities] isEqualToString: expectedFoursquare]); + + NSString* headline = @"What's it like to drive with Tesla's Autopilot and how does it work?"; + NSString* expectedHeadline = @"What's it like to drive with Tesla's Autopilot and how does it work?"; + + XCTAssertTrue([[headline stringByRemovingHTMLEntities] isEqualToString: expectedHeadline]); +} + +#pragma mark - Benchmark + +/// Measures the average unescaping performance. +-(void) testUnescapingPerformance { + // baseline average: 0.001s + [self measureBlock:^{ + (void)[@"Hello, world." stringByRemovingHTMLEntities]; + (void)[@"Fish & Chips" stringByRemovingHTMLEntities]; + (void)[@"My phone number starts with a 1" stringByRemovingHTMLEntities]; + (void)[@"My phone number starts with a _9;!" stringByRemovingHTMLEntities]; + (void)[@"Let's meet at the café" stringByRemovingHTMLEntities]; + (void)[@"Let's meet at the caf&#xzi;!"stringByRemovingHTMLEntities]; + (void)[@"What is this character ? -> �" stringByRemovingHTMLEntities]; + (void)[@"I love &swift;" stringByRemovingHTMLEntities]; + (void)[@"Do you know ℵ?" stringByRemovingHTMLEntities]; + (void)[@"a && b" stringByRemovingHTMLEntities]; + }]; +} + +/// Measures escaping avergae performance. +-(void) testEscapingPerformance { + // baseline average: 0.001s + + [self measureBlock: ^{ + (void)[@"Fish & Chips" stringByAddingASCIIEntities]; + (void)[@"a โชฐฬธ b" stringByAddingASCIIEntities]; + (void)[@"Hey ๐Ÿ™ƒ" stringByAddingASCIIEntities]; + (void)[@"Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June" stringByAddingASCIIEntities]; + + (void)[@"Fish & Chips" stringByAddingUnicodeEntities]; + (void)[@"a โชฐฬธ b" stringByAddingUnicodeEntities]; + (void)[@"Hey ๐Ÿ™ƒ!" stringByAddingUnicodeEntities]; + (void)[@"Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June" stringByAddingUnicodeEntities]; + }]; +} + +/// Measures the average perforance of unescaping a long String with a large number of entities. +-(void) testLargeUnescapingPerformanceString { + NSURL *largeTextURL = [[NSBundle bundleForClass:HTMLStringObjcTests.class] URLForResource:@"large-text" withExtension:@"txt"]; + if (!largeTextURL) { + return XCTFail("Cannot load test fixture."); + } + + NSString *textString = [NSString stringWithContentsOfURL:largeTextURL encoding:NSUTF8StringEncoding error:nil]; + + // baseline average: 0.3s + [self measureBlock:^ { + (void)[textString stringByRemovingHTMLEntities]; + }]; +} + +@end diff --git a/Tests/HTMLStringTests/HTMLStringTests.swift b/Tests/HTMLStringTests/HTMLStringTests.swift index 4ffc660..bf21a21 100644 --- a/Tests/HTMLStringTests/HTMLStringTests.swift +++ b/Tests/HTMLStringTests/HTMLStringTests.swift @@ -1,44 +1,39 @@ import XCTest @testable import HTMLString -/// -/// Tests HTML escaping/unescaping. -/// - -class HTMLStringTests: XCTestCase { - +final class HTMLStringTests: XCTestCase { // MARK: - Escaping /// Tests escaping a string for ASCII. func testStringASCIIEscaping() { - let emptyString = ("").addingASCIIEntities + let emptyString = ("").addingASCIIEntities() XCTAssertEqual(emptyString, "") - let namedEscape = ("Fish & Chips").addingASCIIEntities + let namedEscape = ("Fish & Chips").addingASCIIEntities() XCTAssertEqual(namedEscape, "Fish & Chips") - let namedDualEscape = ("a โชฐฬธ b").addingASCIIEntities + let namedDualEscape = ("a โชฐฬธ b").addingASCIIEntities() XCTAssertEqual(namedDualEscape, "a ⪰̸ b") - let emojiEscape = ("Hey ๐Ÿ™ƒ").addingASCIIEntities + let emojiEscape = ("Hey ๐Ÿ™ƒ").addingASCIIEntities() XCTAssertEqual(emojiEscape, "Hey 🙃") - let doubleEmojiEscape = ("Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June").addingASCIIEntities + let doubleEmojiEscape = ("Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June").addingASCIIEntities() XCTAssertEqual(doubleEmojiEscape, "Going to the 🇺🇸 next June") } /// Tests escaping a string for Unicode. func testStringUnicodeEscaping() { - let requiredEscape = ("Fish & Chips").addingUnicodeEntities + let requiredEscape = ("Fish & Chips").addingUnicodeEntities() XCTAssertEqual(requiredEscape, "Fish & Chips") - let namedDualEscape = ("a โชฐฬธ b").addingUnicodeEntities + let namedDualEscape = ("a โชฐฬธ b").addingUnicodeEntities() XCTAssertEqual(namedDualEscape, "a โชฐฬธ b") - let emojiEscape = ("Hey ๐Ÿ™ƒ!").addingUnicodeEntities + let emojiEscape = ("Hey ๐Ÿ™ƒ!").addingUnicodeEntities() XCTAssertEqual(emojiEscape, "Hey ๐Ÿ™ƒ!") - let doubleEmojiEscape = ("Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June").addingUnicodeEntities + let doubleEmojiEscape = ("Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June").addingUnicodeEntities() XCTAssertEqual(doubleEmojiEscape, "Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June") } @@ -46,40 +41,40 @@ class HTMLStringTests: XCTestCase { /// Tests unescaping strings. func testUnescaping() { - let withoutMarker = "Hello, world.".removingHTMLEntities + let withoutMarker = "Hello, world.".removingHTMLEntities() XCTAssertEqual(withoutMarker, "Hello, world.") - let noSemicolon = "Fish & Chips".removingHTMLEntities + let noSemicolon = "Fish & Chips".removingHTMLEntities() XCTAssertEqual(noSemicolon, "Fish & Chips") - let decimal = "My phone number starts with a 1".removingHTMLEntities + let decimal = "My phone number starts with a 1".removingHTMLEntities() XCTAssertEqual(decimal, "My phone number starts with a 1") - let invalidDecimal = "My phone number starts with a _9;!".removingHTMLEntities + let invalidDecimal = "My phone number starts with a _9;!".removingHTMLEntities() XCTAssertEqual(invalidDecimal, "My phone number starts with a _9;!") - let hex = "Let's meet at the café".removingHTMLEntities + let hex = "Let's meet at the café".removingHTMLEntities() XCTAssertEqual(hex, "Let's meet at the cafรฉ") - let invalidHex = "Let's meet at the caf&#xzi;!".removingHTMLEntities + let invalidHex = "Let's meet at the caf&#xzi;!".removingHTMLEntities() XCTAssertEqual(invalidHex, "Let's meet at the caf&#xzi;!") - let invalidUnicodePoint = "What is this character ? -> �".removingHTMLEntities + let invalidUnicodePoint = "What is this character ? -> �".removingHTMLEntities() XCTAssertEqual(invalidUnicodePoint, "What is this character ? -> �") - let badSequence = "I love &swift;".removingHTMLEntities + let badSequence = "I love &swift;".removingHTMLEntities() XCTAssertEqual(badSequence, "I love &swift;") - let goodSequence = "Do you know ℵ?".removingHTMLEntities + let goodSequence = "Do you know ℵ?".removingHTMLEntities() XCTAssertEqual(goodSequence, "Do you know โ„ต?") - let twoSequences = "a && b".removingHTMLEntities + let twoSequences = "a && b".removingHTMLEntities() XCTAssertEqual(twoSequences, "a && b") - let doubleEmojiEscape = ("Going to the 🇺🇸 next June").removingHTMLEntities + let doubleEmojiEscape = ("Going to the 🇺🇸 next June").removingHTMLEntities() XCTAssertEqual(doubleEmojiEscape, "Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June") - let textInTheMiddle = "Fish & Chips tastes "great\"".removingHTMLEntities + let textInTheMiddle = "Fish & Chips tastes "great\"".removingHTMLEntities() XCTAssertEqual(textInTheMiddle, "Fish & Chips tastes \"great\"") } @@ -87,7 +82,7 @@ class HTMLStringTests: XCTestCase { func testNSString() { let nsSepcialCharacter = NSString("๐Ÿธ๐Ÿบ๐Ÿถ°") let sepcialCharacter = nsSepcialCharacter as String - XCTAssertEqual(sepcialCharacter.removingHTMLEntities, "๐Ÿธ๐Ÿบ๐Ÿถยฐ") + XCTAssertEqual(sepcialCharacter.removingHTMLEntities(), "๐Ÿธ๐Ÿบ๐Ÿถยฐ") } // MARK: - Open Data @@ -95,15 +90,15 @@ class HTMLStringTests: XCTestCase { func testThatItUnescapesSampleData() { let review = "44 Fotos und 68 Tipps von 567 Besucher bei NETA Mexican Street Food anzeigen. "Not sharing the enthusiasm of the other reviewers. The tacos were..."" let expectedReview = "44 Fotos und 68 Tipps von 567 Besucher bei NETA Mexican Street Food anzeigen. \"Not sharing the enthusiasm of the other reviewers. The tacos were...\"" - XCTAssertEqual(review.removingHTMLEntities, expectedReview) + XCTAssertEqual(review.removingHTMLEntities(), expectedReview) let foursquare = "NETA Mexican Street Food, Weinbergsweg 5, Berlin, Berlin, neta mexican street food, Burritos, Mexikanisch, Nachspeise, Abendessen & more" let expectedFoursquare = "NETA Mexican Street Food, Weinbergsweg 5, Berlin, Berlin, neta mexican street food, Burritos, Mexikanisch, Nachspeise, Abendessen & more" - XCTAssertEqual(foursquare.removingHTMLEntities, expectedFoursquare) + XCTAssertEqual(foursquare.removingHTMLEntities(), expectedFoursquare) let headline = "What's it like to drive with Tesla's Autopilot and how does it work?" let expectedHeadline = "What's it like to drive with Tesla's Autopilot and how does it work?" - XCTAssertEqual(headline.removingHTMLEntities, expectedHeadline) + XCTAssertEqual(headline.removingHTMLEntities(), expectedHeadline) } // MARK: - Benchmark @@ -112,16 +107,16 @@ class HTMLStringTests: XCTestCase { func testUnescapingPerformance() { // baseline average: 0.001s self.measure { - _ = "Hello, world.".removingHTMLEntities - _ = "Fish & Chips".removingHTMLEntities - _ = "My phone number starts with a 1".removingHTMLEntities - _ = "My phone number starts with a _9;!".removingHTMLEntities - _ = "Let's meet at the café".removingHTMLEntities - _ = "Let's meet at the caf&#xzi;!".removingHTMLEntities - _ = "What is this character ? -> �".removingHTMLEntities - _ = "I love &swift;".removingHTMLEntities - _ = "Do you know ℵ?".removingHTMLEntities - _ = "a && b".removingHTMLEntities + _ = "Hello, world.".removingHTMLEntities() + _ = "Fish & Chips".removingHTMLEntities() + _ = "My phone number starts with a 1".removingHTMLEntities() + _ = "My phone number starts with a _9;!".removingHTMLEntities() + _ = "Let's meet at the café".removingHTMLEntities() + _ = "Let's meet at the caf&#xzi;!".removingHTMLEntities() + _ = "What is this character ? -> �".removingHTMLEntities() + _ = "I love &swift;".removingHTMLEntities() + _ = "Do you know ℵ?".removingHTMLEntities() + _ = "a && b".removingHTMLEntities() } } @@ -129,30 +124,40 @@ class HTMLStringTests: XCTestCase { func testEscapingPerformance() { // baseline average: 0.001s self.measure { - _ = ("Fish & Chips").addingASCIIEntities - _ = ("a โชฐฬธ b").addingASCIIEntities - _ = ("Hey ๐Ÿ™ƒ").addingASCIIEntities - _ = ("Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June").addingASCIIEntities - - _ = ("Fish & Chips").addingUnicodeEntities - _ = ("a โชฐฬธ b").addingUnicodeEntities - _ = ("Hey ๐Ÿ™ƒ!").addingUnicodeEntities - _ = ("Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June").addingUnicodeEntities + _ = ("Fish & Chips").addingASCIIEntities() + _ = ("a โชฐฬธ b").addingASCIIEntities() + _ = ("Hey ๐Ÿ™ƒ").addingASCIIEntities() + _ = ("Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June").addingASCIIEntities() + + _ = ("Fish & Chips").addingUnicodeEntities() + _ = ("a โชฐฬธ b").addingUnicodeEntities() + _ = ("Hey ๐Ÿ™ƒ!").addingUnicodeEntities() + _ = ("Going to the ๐Ÿ‡บ๐Ÿ‡ธ next June").addingUnicodeEntities() } } /// Measures the average perforance of unescaping a long String with a large number of entities. - func testLargeUnescapingPerformance() { + /// - Named entities : 1448 + /// - Hexadecimal entities : 1448 + /// - Decimal entities : 1448 + /// - Length : 468973 characters + func testLargeUnescapingPerformanceStringFromSwift() { + guard + let largeText = Bundle.testResources + .url(forResource: "large-text", withExtension: "txt") + .flatMap({ try? String(contentsOf: $0) }) + else { + return XCTFail("Could not load text fixture") + } + // baseline average: 0.3s self.measure { - _ = HTMLTestLongUnescapableString.removingHTMLEntities + _ = largeText.removingHTMLEntities() } } - } extension HTMLStringTests { - static var allTests: [(String, (HTMLStringTests) -> () throws -> Void)] { return [ ("testStringASCIIEscaping", testStringASCIIEscaping), @@ -160,8 +165,7 @@ extension HTMLStringTests { ("testUnescaping", testUnescaping), ("testUnescapingPerformance", testUnescapingPerformance), ("testEscapingPerformance", testEscapingPerformance), - ("testLargeUnescapingPerformance", testLargeUnescapingPerformance) + ("testLargeUnescapingPerformanceStringFromSwift", testLargeUnescapingPerformanceStringFromSwift) ] } - } diff --git a/Tests/HTMLStringTests/TestData.swift b/Tests/HTMLStringTests/TestData.swift deleted file mode 100644 index 2b78625..0000000 --- a/Tests/HTMLStringTests/TestData.swift +++ /dev/null @@ -1,1481 +0,0 @@ -import Foundation - -/// -/// A long text that contains 4928 unescapable entities. -/// -/// - Named entities : 1448 -/// - Hexadecimal entities : 1448 -/// - Decimal entities : 1448 -/// - Length : 468973 characters -/// - -let HTMLTestLongUnescapableString = """ - - -Character Entity Reference Chart - - -
CHARACTER TABULATION -
- LINE FEED (LF) -
!!!!EXCLAMATION MARK -
"" """QUOTATION MARK -
####NUMBER SIGN -
$$$$DOLLAR SIGN -
%%%%PERCENT SIGN -
&& &&&AMPERSAND -
''''APOSTROPHE -
((((LEFT PARENTHESIS -
))))RIGHT PARENTHESIS -
** ***ASTERISK -
++++PLUS SIGN -
,,,,COMMA -
....FULL STOP -
////SOLIDUS -
::::COLON -
;;;;SEMICOLON -
<< <<<LESS-THAN SIGN -
====EQUALS SIGN -
>> >>>GREATER-THAN SIGN -
????QUESTION MARK -
@@@@COMMERCIAL AT -
[[ [[[LEFT SQUARE BRACKET -
\\\\\REVERSE SOLIDUS -
]] ]]]RIGHT SQUARE BRACKET -
^^^^CIRCUMFLEX ACCENT -
____LOW LINE -
`` ```GRAVE ACCENT -
{{ {{{LEFT CURLY BRACKET -
|| | |||VERTICAL LINE -
}} }}}RIGHT CURLY BRACKET -
ย      NO-BREAK SPACE -
ยก¡¡¡INVERTED EXCLAMATION MARK -
ยข¢¢¢CENT SIGN -
ยฃ£££POUND SIGN -
ยค¤¤¤CURRENCY SIGN -
ยฅ¥¥¥YEN SIGN -
ยฆ¦¦¦BROKEN BAR -
ยง§§§SECTION SIGN -
ยจ¨ ¨ ¨ ¨¨¨DIAERESIS -
ยฉ© ©©©COPYRIGHT SIGN -
ยชªªªFEMININE ORDINAL INDICATOR -
ยซ«««LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -
ยฌ¬¬¬NOT SIGN -
ยญ­­­SOFT HYPHEN -
ยฎ® ® ®®®REGISTERED SIGN -
ยฏ¯ ‾ ¯¯¯MACRON -
ยฐ°°°DEGREE SIGN -
ยฑ± ± ±±±PLUS-MINUS SIGN -
ยฒ²²²SUPERSCRIPT TWO -
ยณ³³³SUPERSCRIPT THREE -
ยด´ ´´´ACUTE ACCENT -
ยตµµµMICRO SIGN -
ยถPILCROW SIGN -
ยท· · ···MIDDLE DOT -
ยธ¸ ¸¸¸CEDILLA -
ยน¹¹¹SUPERSCRIPT ONE -
ยบºººMASCULINE ORDINAL INDICATOR -
ยป»»»RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -
ยผ¼¼¼VULGAR FRACTION ONE QUARTER -
ยฝ½ ½½½VULGAR FRACTION ONE HALF -
ยพ¾¾¾VULGAR FRACTION THREE QUARTERS -
ยฟ¿¿¿INVERTED QUESTION MARK -
ร€ÀÀÀLATIN CAPITAL LETTER A WITH GRAVE -
รÁÁÁLATIN CAPITAL LETTER A WITH ACUTE -
ร‚ÂÂÂLATIN CAPITAL LETTER A WITH CIRCUMFLEX -
รƒÃÃÃLATIN CAPITAL LETTER A WITH TILDE -
ร„ÄÄÄLATIN CAPITAL LETTER A WITH DIAERESIS -
ร…ÅÅÅLATIN CAPITAL LETTER A WITH RING ABOVE -
ร†ÆÆÆLATIN CAPITAL LETTER AE -
ร‡ÇÇÇLATIN CAPITAL LETTER C WITH CEDILLA -
รˆÈÈÈLATIN CAPITAL LETTER E WITH GRAVE -
ร‰ÉÉÉLATIN CAPITAL LETTER E WITH ACUTE -
รŠÊÊÊLATIN CAPITAL LETTER E WITH CIRCUMFLEX -
ร‹ËËËLATIN CAPITAL LETTER E WITH DIAERESIS -
รŒÌÌÌLATIN CAPITAL LETTER I WITH GRAVE -
รÍÍÍLATIN CAPITAL LETTER I WITH ACUTE -
รŽÎÎÎLATIN CAPITAL LETTER I WITH CIRCUMFLEX -
รÏÏÏLATIN CAPITAL LETTER I WITH DIAERESIS -
รÐÐÐLATIN CAPITAL LETTER ETH -
ร‘ÑÑÑLATIN CAPITAL LETTER N WITH TILDE -
ร’ÒÒÒLATIN CAPITAL LETTER O WITH GRAVE -
ร“ÓÓÓLATIN CAPITAL LETTER O WITH ACUTE -
ร”ÔÔÔLATIN CAPITAL LETTER O WITH CIRCUMFLEX -
ร•ÕÕÕLATIN CAPITAL LETTER O WITH TILDE -
ร–ÖÖÖLATIN CAPITAL LETTER O WITH DIAERESIS -
ร—×××MULTIPLICATION SIGN -
ร˜ØØØLATIN CAPITAL LETTER O WITH STROKE -
ร™ÙÙÙLATIN CAPITAL LETTER U WITH GRAVE -
รšÚÚÚLATIN CAPITAL LETTER U WITH ACUTE -
ร›ÛÛÛLATIN CAPITAL LETTER U WITH CIRCUMFLEX -
รœÜÜÜLATIN CAPITAL LETTER U WITH DIAERESIS -
รÝÝÝLATIN CAPITAL LETTER Y WITH ACUTE -
รžÞÞÞLATIN CAPITAL LETTER THORN -
รŸßßßLATIN SMALL LETTER SHARP S -
ร àààLATIN SMALL LETTER A WITH GRAVE -
รกáááLATIN SMALL LETTER A WITH ACUTE -
รขâââLATIN SMALL LETTER A WITH CIRCUMFLEX -
รฃãããLATIN SMALL LETTER A WITH TILDE -
รคäääLATIN SMALL LETTER A WITH DIAERESIS -
รฅåååLATIN SMALL LETTER A WITH RING ABOVE -
รฆæææLATIN SMALL LETTER AE -
รงçççLATIN SMALL LETTER C WITH CEDILLA -
รจèèèLATIN SMALL LETTER E WITH GRAVE -
รฉéééLATIN SMALL LETTER E WITH ACUTE -
รชêêêLATIN SMALL LETTER E WITH CIRCUMFLEX -
รซëëëLATIN SMALL LETTER E WITH DIAERESIS -
รฌìììLATIN SMALL LETTER I WITH GRAVE -
รญíííLATIN SMALL LETTER I WITH ACUTE -
รฎîîîLATIN SMALL LETTER I WITH CIRCUMFLEX -
รฏïïïLATIN SMALL LETTER I WITH DIAERESIS -
รฐðððLATIN SMALL LETTER ETH -
รฑñññLATIN SMALL LETTER N WITH TILDE -
รฒòòòLATIN SMALL LETTER O WITH GRAVE -
รณóóóLATIN SMALL LETTER O WITH ACUTE -
รดôôôLATIN SMALL LETTER O WITH CIRCUMFLEX -
รตõõõLATIN SMALL LETTER O WITH TILDE -
รถöööLATIN SMALL LETTER O WITH DIAERESIS -
รท÷ ÷÷÷DIVISION SIGN -
รธøøøLATIN SMALL LETTER O WITH STROKE -
รนùùùLATIN SMALL LETTER U WITH GRAVE -
รบúúúLATIN SMALL LETTER U WITH ACUTE -
รปûûûLATIN SMALL LETTER U WITH CIRCUMFLEX -
รผüüüLATIN SMALL LETTER U WITH DIAERESIS -
รฝýýýLATIN SMALL LETTER Y WITH ACUTE -
รพþþþLATIN SMALL LETTER THORN -
รฟÿÿÿLATIN SMALL LETTER Y WITH DIAERESIS -
ฤ€ĀĀĀLATIN CAPITAL LETTER A WITH MACRON -
ฤāāāLATIN SMALL LETTER A WITH MACRON -
ฤ‚ĂĂĂLATIN CAPITAL LETTER A WITH BREVE -
ฤƒăăăLATIN SMALL LETTER A WITH BREVE -
ฤ„ĄĄĄLATIN CAPITAL LETTER A WITH OGONEK -
ฤ…ąąąLATIN SMALL LETTER A WITH OGONEK -
ฤ†ĆĆĆLATIN CAPITAL LETTER C WITH ACUTE -
ฤ‡ćććLATIN SMALL LETTER C WITH ACUTE -
ฤˆĈĈĈLATIN CAPITAL LETTER C WITH CIRCUMFLEX -
ฤ‰ĉĉĉLATIN SMALL LETTER C WITH CIRCUMFLEX -
ฤŠĊĊĊLATIN CAPITAL LETTER C WITH DOT ABOVE -
ฤ‹ċċċLATIN SMALL LETTER C WITH DOT ABOVE -
ฤŒČČČLATIN CAPITAL LETTER C WITH CARON -
ฤčččLATIN SMALL LETTER C WITH CARON -
ฤŽĎĎĎLATIN CAPITAL LETTER D WITH CARON -
ฤďďďLATIN SMALL LETTER D WITH CARON -
ฤĐĐĐLATIN CAPITAL LETTER D WITH STROKE -
ฤ‘đđđLATIN SMALL LETTER D WITH STROKE -
ฤ’ĒĒĒLATIN CAPITAL LETTER E WITH MACRON -
ฤ“ēēēLATIN SMALL LETTER E WITH MACRON -
ฤ–ĖĖĖLATIN CAPITAL LETTER E WITH DOT ABOVE -
ฤ—ėėėLATIN SMALL LETTER E WITH DOT ABOVE -
ฤ˜ĘĘĘLATIN CAPITAL LETTER E WITH OGONEK -
ฤ™ęęęLATIN SMALL LETTER E WITH OGONEK -
ฤšĚĚĚLATIN CAPITAL LETTER E WITH CARON -
ฤ›ěěěLATIN SMALL LETTER E WITH CARON -
ฤœĜĜĜLATIN CAPITAL LETTER G WITH CIRCUMFLEX -
ฤĝĝĝLATIN SMALL LETTER G WITH CIRCUMFLEX -
ฤžĞĞĞLATIN CAPITAL LETTER G WITH BREVE -
ฤŸğğğLATIN SMALL LETTER G WITH BREVE -
ฤ ĠĠĠLATIN CAPITAL LETTER G WITH DOT ABOVE -
ฤกġġġLATIN SMALL LETTER G WITH DOT ABOVE -
ฤขĢĢĢLATIN CAPITAL LETTER G WITH CEDILLA -
ฤคĤĤĤLATIN CAPITAL LETTER H WITH CIRCUMFLEX -
ฤฅĥĥĥLATIN SMALL LETTER H WITH CIRCUMFLEX -
ฤฆĦĦĦLATIN CAPITAL LETTER H WITH STROKE -
ฤงħħħLATIN SMALL LETTER H WITH STROKE -
ฤจĨĨĨLATIN CAPITAL LETTER I WITH TILDE -
ฤฉĩĩĩLATIN SMALL LETTER I WITH TILDE -
ฤชĪĪĪLATIN CAPITAL LETTER I WITH MACRON -
ฤซīīīLATIN SMALL LETTER I WITH MACRON -
ฤฎĮĮĮLATIN CAPITAL LETTER I WITH OGONEK -
ฤฏįįįLATIN SMALL LETTER I WITH OGONEK -
ฤฐİİİLATIN CAPITAL LETTER I WITH DOT ABOVE -
ฤฑı ıııLATIN SMALL LETTER DOTLESS I -
ฤฒIJIJIJLATIN CAPITAL LIGATURE IJ -
ฤณijijijLATIN SMALL LIGATURE IJ -
ฤดĴĴĴLATIN CAPITAL LETTER J WITH CIRCUMFLEX -
ฤตĵĵĵLATIN SMALL LETTER J WITH CIRCUMFLEX -
ฤถĶĶĶLATIN CAPITAL LETTER K WITH CEDILLA -
ฤทķķķLATIN SMALL LETTER K WITH CEDILLA -
ฤธĸĸĸLATIN SMALL LETTER KRA -
ฤนĹĹĹLATIN CAPITAL LETTER L WITH ACUTE -
ฤบĺĺĺLATIN SMALL LETTER L WITH ACUTE -
ฤปĻĻĻLATIN CAPITAL LETTER L WITH CEDILLA -
ฤผļļļLATIN SMALL LETTER L WITH CEDILLA -
ฤฝĽĽĽLATIN CAPITAL LETTER L WITH CARON -
ฤพľľľLATIN SMALL LETTER L WITH CARON -
ฤฟĿĿĿLATIN CAPITAL LETTER L WITH MIDDLE DOT -
ล€ŀŀŀLATIN SMALL LETTER L WITH MIDDLE DOT -
ลŁŁŁLATIN CAPITAL LETTER L WITH STROKE -
ล‚łłłLATIN SMALL LETTER L WITH STROKE -
ลƒŃŃŃLATIN CAPITAL LETTER N WITH ACUTE -
ล„ńńńLATIN SMALL LETTER N WITH ACUTE -
ล…ŅŅŅLATIN CAPITAL LETTER N WITH CEDILLA -
ล†ņņņLATIN SMALL LETTER N WITH CEDILLA -
ล‡ŇŇŇLATIN CAPITAL LETTER N WITH CARON -
ลˆňňňLATIN SMALL LETTER N WITH CARON -
ล‰ʼnʼnʼnLATIN SMALL LETTER N PRECEDED BY APOSTROPHE -
ลŠŊŊŊLATIN CAPITAL LETTER ENG -
ล‹ŋŋŋLATIN SMALL LETTER ENG -
ลŒŌŌŌLATIN CAPITAL LETTER O WITH MACRON -
ลōōōLATIN SMALL LETTER O WITH MACRON -
ลŐŐŐLATIN CAPITAL LETTER O WITH DOUBLE ACUTE -
ล‘őőőLATIN SMALL LETTER O WITH DOUBLE ACUTE -
ล’ŒŒŒLATIN CAPITAL LIGATURE OE -
ล“œœœLATIN SMALL LIGATURE OE -
ล”ŔŔŔLATIN CAPITAL LETTER R WITH ACUTE -
ล•ŕŕŕLATIN SMALL LETTER R WITH ACUTE -
ล–ŖŖŖLATIN CAPITAL LETTER R WITH CEDILLA -
ล—ŗŗŗLATIN SMALL LETTER R WITH CEDILLA -
ล˜ŘŘŘLATIN CAPITAL LETTER R WITH CARON -
ล™řřřLATIN SMALL LETTER R WITH CARON -
ลšŚŚŚLATIN CAPITAL LETTER S WITH ACUTE -
ล›śśśLATIN SMALL LETTER S WITH ACUTE -
ลœŜŜŜLATIN CAPITAL LETTER S WITH CIRCUMFLEX -
ลŝŝŝLATIN SMALL LETTER S WITH CIRCUMFLEX -
ลžŞŞŞLATIN CAPITAL LETTER S WITH CEDILLA -
ลŸşşşLATIN SMALL LETTER S WITH CEDILLA -
ล ŠŠŠLATIN CAPITAL LETTER S WITH CARON -
ลกšššLATIN SMALL LETTER S WITH CARON -
ลขŢŢŢLATIN CAPITAL LETTER T WITH CEDILLA -
ลฃţţţLATIN SMALL LETTER T WITH CEDILLA -
ลคŤŤŤLATIN CAPITAL LETTER T WITH CARON -
ลฅťťťLATIN SMALL LETTER T WITH CARON -
ลฆŦŦŦLATIN CAPITAL LETTER T WITH STROKE -
ลงŧŧŧLATIN SMALL LETTER T WITH STROKE -
ลจŨŨŨLATIN CAPITAL LETTER U WITH TILDE -
ลฉũũũLATIN SMALL LETTER U WITH TILDE -
ลชŪŪŪLATIN CAPITAL LETTER U WITH MACRON -
ลซūūūLATIN SMALL LETTER U WITH MACRON -
ลฌŬŬŬLATIN CAPITAL LETTER U WITH BREVE -
ลญŭŭŭLATIN SMALL LETTER U WITH BREVE -
ลฎŮŮŮLATIN CAPITAL LETTER U WITH RING ABOVE -
ลฏůůůLATIN SMALL LETTER U WITH RING ABOVE -
ลฐŰŰŰLATIN CAPITAL LETTER U WITH DOUBLE ACUTE -
ลฑűűűLATIN SMALL LETTER U WITH DOUBLE ACUTE -
ลฒŲŲŲLATIN CAPITAL LETTER U WITH OGONEK -
ลณųųųLATIN SMALL LETTER U WITH OGONEK -
ลดŴŴŴLATIN CAPITAL LETTER W WITH CIRCUMFLEX -
ลตŵŵŵLATIN SMALL LETTER W WITH CIRCUMFLEX -
ลถŶŶŶLATIN CAPITAL LETTER Y WITH CIRCUMFLEX -
ลทŷŷŷLATIN SMALL LETTER Y WITH CIRCUMFLEX -
ลธŸŸŸLATIN CAPITAL LETTER Y WITH DIAERESIS -
ลนŹŹŹLATIN CAPITAL LETTER Z WITH ACUTE -
ลบźźźLATIN SMALL LETTER Z WITH ACUTE -
ลปŻŻŻLATIN CAPITAL LETTER Z WITH DOT ABOVE -
ลผżżżLATIN SMALL LETTER Z WITH DOT ABOVE -
ลฝŽŽŽLATIN CAPITAL LETTER Z WITH CARON -
ลพžžžLATIN SMALL LETTER Z WITH CARON -
ฦ’ƒƒƒLATIN SMALL LETTER F WITH HOOK -
ฦตƵƵƵLATIN CAPITAL LETTER Z WITH STROKE -
วตǵǵǵLATIN SMALL LETTER G WITH ACUTE -
ศทȷȷȷLATIN SMALL LETTER DOTLESS J -
ห†ˆˆˆMODIFIER LETTER CIRCUMFLEX ACCENT -
ห‡ˇ ˇˇˇCARON -
ห˜˘ ˘˘˘BREVE -
ห™˙ ˙˙˙DOT ABOVE -
หš˚˚˚RING ABOVE -
ห›˛˛˛OGONEK -
หœ˜ ˜˜˜SMALL TILDE -
ห˝ ˝˝˝DOUBLE ACUTE ACCENT -
ฬ‘̑̑̑COMBINING INVERTED BREVE -
ฬฒ_̲̲COMBINING LOW LINE -
ฮ‘ΑΑΑGREEK CAPITAL LETTER ALPHA -
ฮ’ΒΒΒGREEK CAPITAL LETTER BETA -
ฮ“ΓΓΓGREEK CAPITAL LETTER GAMMA -
ฮ”ΔΔΔGREEK CAPITAL LETTER DELTA -
ฮ•ΕΕΕGREEK CAPITAL LETTER EPSILON -
ฮ–ΖΖΖGREEK CAPITAL LETTER ZETA -
ฮ—ΗΗΗGREEK CAPITAL LETTER ETA -
ฮ˜ΘΘΘGREEK CAPITAL LETTER THETA -
ฮ™ΙΙΙGREEK CAPITAL LETTER IOTA -
ฮšΚΚΚGREEK CAPITAL LETTER KAPPA -
ฮ›ΛΛΛGREEK CAPITAL LETTER LAMDA -
ฮœΜΜΜGREEK CAPITAL LETTER MU -
ฮΝΝΝGREEK CAPITAL LETTER NU -
ฮžΞΞΞGREEK CAPITAL LETTER XI -
ฮŸΟΟΟGREEK CAPITAL LETTER OMICRON -
ฮ ΠΠΠGREEK CAPITAL LETTER PI -
ฮกΡΡΡGREEK CAPITAL LETTER RHO -
ฮฃΣΣΣGREEK CAPITAL LETTER SIGMA -
ฮคΤΤΤGREEK CAPITAL LETTER TAU -
ฮฅΥΥΥGREEK CAPITAL LETTER UPSILON -
ฮฆΦΦΦGREEK CAPITAL LETTER PHI -
ฮงΧΧΧGREEK CAPITAL LETTER CHI -
ฮจΨΨΨGREEK CAPITAL LETTER PSI -
ฮฉΩΩΩGREEK CAPITAL LETTER OMEGA -
ฮฑαααGREEK SMALL LETTER ALPHA -
ฮฒβββGREEK SMALL LETTER BETA -
ฮณγγγGREEK SMALL LETTER GAMMA -
ฮดδδδGREEK SMALL LETTER DELTA -
ฮตϵ ϵ εεεGREEK SMALL LETTER EPSILON -
ฮถζζζGREEK SMALL LETTER ZETA -
ฮทηηηGREEK SMALL LETTER ETA -
ฮธθθθGREEK SMALL LETTER THETA -
ฮนιιιGREEK SMALL LETTER IOTA -
ฮบκκκGREEK SMALL LETTER KAPPA -
ฮปλλλGREEK SMALL LETTER LAMDA -
ฮผμμμGREEK SMALL LETTER MU -
ฮฝνννGREEK SMALL LETTER NU -
ฮพξξξGREEK SMALL LETTER XI -
ฮฟοοοGREEK SMALL LETTER OMICRON -
ฯ€πππGREEK SMALL LETTER PI -
ฯρρρGREEK SMALL LETTER RHO -
ฯ‚ς ς ςςςGREEK SMALL LETTER FINAL SIGMA -
ฯƒσσσGREEK SMALL LETTER SIGMA -
ฯ„τττGREEK SMALL LETTER TAU -
ฯ…υ υυυGREEK SMALL LETTER UPSILON -
ฯ†φ ϕ ϕφφGREEK SMALL LETTER PHI -
ฯ‡χχχGREEK SMALL LETTER CHI -
ฯˆψψψGREEK SMALL LETTER PSI -
ฯ‰ωωωGREEK SMALL LETTER OMEGA -
ฯ‘ϑ ϑ ϑϑϑGREEK THETA SYMBOL -
ฯ’ϒ ϒϒϒGREEK UPSILON WITH HOOK SYMBOL -
ฯ•ϕϕϕGREEK PHI SYMBOL -
ฯ–ϖ ϖϖϖGREEK PI SYMBOL -
ฯœϜϜϜGREEK LETTER DIGAMMA -
ฯϝ ϝϝϝGREEK SMALL LETTER DIGAMMA -
ฯฐϰ ϰϰϰGREEK KAPPA SYMBOL -
ฯฑϱ ϱϱϱGREEK RHO SYMBOL -
ฯตε ϵϵϵGREEK LUNATE EPSILON SYMBOL -
ฯถ϶ ϶϶϶GREEK REVERSED LUNATE EPSILON SYMBOL -
ะЁЁЁCYRILLIC CAPITAL LETTER IO -
ะ‚ЂЂЂCYRILLIC CAPITAL LETTER DJE -
ะƒЃЃЃCYRILLIC CAPITAL LETTER GJE -
ะ„ЄЄЄCYRILLIC CAPITAL LETTER UKRAINIAN IE -
ะ…ЅЅЅCYRILLIC CAPITAL LETTER DZE -
ะ†ІІІCYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -
ะ‡ЇЇЇCYRILLIC CAPITAL LETTER YI -
ะˆЈЈЈCYRILLIC CAPITAL LETTER JE -
ะ‰ЉЉЉCYRILLIC CAPITAL LETTER LJE -
ะŠЊЊЊCYRILLIC CAPITAL LETTER NJE -
ะ‹ЋЋЋCYRILLIC CAPITAL LETTER TSHE -
ะŒЌЌЌCYRILLIC CAPITAL LETTER KJE -
ะŽЎЎЎCYRILLIC CAPITAL LETTER SHORT U -
ะЏЏЏCYRILLIC CAPITAL LETTER DZHE -
ะАААCYRILLIC CAPITAL LETTER A -
ะ‘БББCYRILLIC CAPITAL LETTER BE -
ะ’ВВВCYRILLIC CAPITAL LETTER VE -
ะ“ГГГCYRILLIC CAPITAL LETTER GHE -
ะ”ДДДCYRILLIC CAPITAL LETTER DE -
ะ•ЕЕЕCYRILLIC CAPITAL LETTER IE -
ะ–ЖЖЖCYRILLIC CAPITAL LETTER ZHE -
ะ—ЗЗЗCYRILLIC CAPITAL LETTER ZE -
ะ˜ИИИCYRILLIC CAPITAL LETTER I -
ะ™ЙЙЙCYRILLIC CAPITAL LETTER SHORT I -
ะšКККCYRILLIC CAPITAL LETTER KA -
ะ›ЛЛЛCYRILLIC CAPITAL LETTER EL -
ะœМММCYRILLIC CAPITAL LETTER EM -
ะНННCYRILLIC CAPITAL LETTER EN -
ะžОООCYRILLIC CAPITAL LETTER O -
ะŸПППCYRILLIC CAPITAL LETTER PE -
ะ РРРCYRILLIC CAPITAL LETTER ER -
ะกСССCYRILLIC CAPITAL LETTER ES -
ะขТТТCYRILLIC CAPITAL LETTER TE -
ะฃУУУCYRILLIC CAPITAL LETTER U -
ะคФФФCYRILLIC CAPITAL LETTER EF -
ะฅХХХCYRILLIC CAPITAL LETTER HA -
ะฆЦЦЦCYRILLIC CAPITAL LETTER TSE -
ะงЧЧЧCYRILLIC CAPITAL LETTER CHE -
ะจШШШCYRILLIC CAPITAL LETTER SHA -
ะฉЩЩЩCYRILLIC CAPITAL LETTER SHCHA -
ะชЪЪЪCYRILLIC CAPITAL LETTER HARD SIGN -
ะซЫЫЫCYRILLIC CAPITAL LETTER YERU -
ะฌЬЬЬCYRILLIC CAPITAL LETTER SOFT SIGN -
ะญЭЭЭCYRILLIC CAPITAL LETTER E -
ะฎЮЮЮCYRILLIC CAPITAL LETTER YU -
ะฏЯЯЯCYRILLIC CAPITAL LETTER YA -
ะฐаааCYRILLIC SMALL LETTER A -
ะฑбббCYRILLIC SMALL LETTER BE -
ะฒвввCYRILLIC SMALL LETTER VE -
ะณгггCYRILLIC SMALL LETTER GHE -
ะดдддCYRILLIC SMALL LETTER DE -
ะตеееCYRILLIC SMALL LETTER IE -
ะถжжжCYRILLIC SMALL LETTER ZHE -
ะทзззCYRILLIC SMALL LETTER ZE -
ะธиииCYRILLIC SMALL LETTER I -
ะนйййCYRILLIC SMALL LETTER SHORT I -
ะบкккCYRILLIC SMALL LETTER KA -
ะปлллCYRILLIC SMALL LETTER EL -
ะผмммCYRILLIC SMALL LETTER EM -
ะฝнннCYRILLIC SMALL LETTER EN -
ะพоооCYRILLIC SMALL LETTER O -
ะฟпппCYRILLIC SMALL LETTER PE -
ั€рррCYRILLIC SMALL LETTER ER -
ัсссCYRILLIC SMALL LETTER ES -
ั‚тттCYRILLIC SMALL LETTER TE -
ัƒуууCYRILLIC SMALL LETTER U -
ั„фффCYRILLIC SMALL LETTER EF -
ั…хххCYRILLIC SMALL LETTER HA -
ั†цццCYRILLIC SMALL LETTER TSE -
ั‡чччCYRILLIC SMALL LETTER CHE -
ัˆшшшCYRILLIC SMALL LETTER SHA -
ั‰щщщCYRILLIC SMALL LETTER SHCHA -
ัŠъъъCYRILLIC SMALL LETTER HARD SIGN -
ั‹ыыыCYRILLIC SMALL LETTER YERU -
ัŒьььCYRILLIC SMALL LETTER SOFT SIGN -
ัэээCYRILLIC SMALL LETTER E -
ัŽюююCYRILLIC SMALL LETTER YU -
ัяяяCYRILLIC SMALL LETTER YA -
ั‘ёёёCYRILLIC SMALL LETTER IO -
ั’ђђђCYRILLIC SMALL LETTER DJE -
ั“ѓѓѓCYRILLIC SMALL LETTER GJE -
ั”єєєCYRILLIC SMALL LETTER UKRAINIAN IE -
ั•ѕѕѕCYRILLIC SMALL LETTER DZE -
ั–іііCYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -
ั—їїїCYRILLIC SMALL LETTER YI -
ั˜јјјCYRILLIC SMALL LETTER JE -
ั™љљљCYRILLIC SMALL LETTER LJE -
ัšњњњCYRILLIC SMALL LETTER NJE -
ั›ћћћCYRILLIC SMALL LETTER TSHE -
ัœќќќCYRILLIC SMALL LETTER KJE -
ัžўўўCYRILLIC SMALL LETTER SHORT U -
ัŸџџџCYRILLIC SMALL LETTER DZHE -
โ€‚EN SPACE -
โ€ƒEM SPACE -
โ€„THREE-PER-EM SPACE -
โ€…FOUR-PER-EM SPACE -
โ€‡FIGURE SPACE -
โ€ˆPUNCTUATION SPACE -
โ€‰   THIN SPACE -
โ€Š   HAIR SPACE -
โ€‹​ ​ ​ ​ ​ZERO WIDTH SPACE -
โ€ŒZERO WIDTH NON-JOINER -
โ€ZERO WIDTH JOINER -
โ€ŽLEFT-TO-RIGHT MARK -
โ€RIGHT-TO-LEFT MARK -
โ€‐ ‐HYPHEN -
โ€“EN DASH -
โ€”EM DASH -
โ€•HORIZONTAL BAR -
โ€–‖ ‖DOUBLE VERTICAL LINE -
โ€˜‘ ‘LEFT SINGLE QUOTATION MARK -
โ€™’ ’ ’RIGHT SINGLE QUOTATION MARK -
โ€š‚ ‚SINGLE LOW-9 QUOTATION MARK -
โ€œ“ “LEFT DOUBLE QUOTATION MARK -
โ€” ” ”RIGHT DOUBLE QUOTATION MARK -
โ€ž„ „DOUBLE LOW-9 QUOTATION MARK -
โ€ DAGGER -
โ€ก‡ ‡DOUBLE DAGGER -
โ€ข• •BULLET -
โ€ฅTWO DOT LEADER -
โ€ฆ… …HORIZONTAL ELLIPSIS -
โ€ฐPER MILLE SIGN -
โ€ฑPER TEN THOUSAND SIGN -
โ€ฒPRIME -
โ€ณDOUBLE PRIME -
โ€ดTRIPLE PRIME -
โ€ต‵ ‵REVERSED PRIME -
โ€นSINGLE LEFT-POINTING ANGLE QUOTATION MARK -
โ€บSINGLE RIGHT-POINTING ANGLE QUOTATION MARK -
โ€พOVERLINE -
โCARET INSERTION POINT -
โƒHYPHEN BULLET -
โ„FRACTION SLASH -
โREVERSED SEMICOLON -
โ—QUADRUPLE PRIME -
โŸMEDIUM MATHEMATICAL SPACE -
โ WORD JOINER -
โก⁡ ⁡FUNCTION APPLICATION -
โข⁢ ⁢INVISIBLE TIMES -
โฃ⁣ ⁣INVISIBLE SEPARATOR -
โ‚ฌEURO SIGN -
โƒ›⃛ ⃛COMBINING THREE DOTS ABOVE -
โƒœCOMBINING FOUR DOTS ABOVE -
โ„‚ℂ ℂDOUBLE-STRUCK CAPITAL C -
โ„…CARE OF -
โ„ŠSCRIPT SMALL G -
โ„‹ℋ ℋ ℋSCRIPT CAPITAL H -
โ„Œℌ ℌBLACK-LETTER CAPITAL H -
โ„ℍ ℍDOUBLE-STRUCK CAPITAL H -
โ„ŽPLANCK CONSTANT -
โ„ℏ ℏ ℏ ℏPLANCK CONSTANT OVER TWO PI -
โ„ℐ ℐSCRIPT CAPITAL I -
โ„‘ℑ ℑ ℑ ℑBLACK-LETTER CAPITAL I -
โ„’ℒ ℒ ℒSCRIPT CAPITAL L -
โ„“SCRIPT SMALL L -
โ„•ℕ ℕDOUBLE-STRUCK CAPITAL N -
โ„–NUMERO SIGN -
โ„—SOUND RECORDING COPYRIGHT -
โ„˜℘ ℘SCRIPT CAPITAL P -
โ„™ℙ ℙDOUBLE-STRUCK CAPITAL P -
โ„šℚ ℚDOUBLE-STRUCK CAPITAL Q -
โ„›ℛ ℛSCRIPT CAPITAL R -
โ„œℜ ℜ ℜ ℜBLACK-LETTER CAPITAL R -
โ„ℝ ℝDOUBLE-STRUCK CAPITAL R -
โ„žPRESCRIPTION TAKE -
โ„ข™ ™TRADE MARK SIGN -
โ„คℤ ℤDOUBLE-STRUCK CAPITAL Z -
โ„ฆΩOHM SIGN -
โ„งINVERTED OHM SIGN -
โ„จℨ ℨBLACK-LETTER CAPITAL Z -
โ„ฉTURNED GREEK SMALL LETTER IOTA -
โ„ซÅANGSTROM SIGN -
โ„ฌℬ ℬ ℬSCRIPT CAPITAL B -
โ„ญℭ ℭBLACK-LETTER CAPITAL C -
โ„ฏSCRIPT SMALL E -
โ„ฐℰ ℰSCRIPT CAPITAL E -
โ„ฑℱ ℱSCRIPT CAPITAL F -
โ„ณℳ ℳ ℳSCRIPT CAPITAL M -
โ„ดℴ ℴ ℴSCRIPT SMALL O -
โ„ตℵ ℵALEF SYMBOL -
โ„ถBET SYMBOL -
โ„ทGIMEL SYMBOL -
โ„ธDALET SYMBOL -
โ……ⅅ ⅅDOUBLE-STRUCK ITALIC CAPITAL D -
โ…†ⅆ ⅆDOUBLE-STRUCK ITALIC SMALL D -
โ…‡ⅇ ⅇ ⅇDOUBLE-STRUCK ITALIC SMALL E -
โ…ˆⅈ ⅈDOUBLE-STRUCK ITALIC SMALL I -
โ…“VULGAR FRACTION ONE THIRD -
โ…”VULGAR FRACTION TWO THIRDS -
โ…•VULGAR FRACTION ONE FIFTH -
โ…–VULGAR FRACTION TWO FIFTHS -
โ…—VULGAR FRACTION THREE FIFTHS -
โ…˜VULGAR FRACTION FOUR FIFTHS -
โ…™VULGAR FRACTION ONE SIXTH -
โ…šVULGAR FRACTION FIVE SIXTHS -
โ…›VULGAR FRACTION ONE EIGHTH -
โ…œVULGAR FRACTION THREE EIGHTHS -
โ…VULGAR FRACTION FIVE EIGHTHS -
โ…žVULGAR FRACTION SEVEN EIGHTHS -
โ†← ← ← ← ←LEFTWARDS ARROW -
โ†‘↑ ↑ ↑ ↑UPWARDS ARROW -
โ†’→ → → → →RIGHTWARDS ARROW -
โ†“↓ ↓ ↓ ↓DOWNWARDS ARROW -
โ†”↔ ↔ ↔LEFT RIGHT ARROW -
โ†•↕ ↕ ↕UP DOWN ARROW -
โ†–↖ ↖ ↖NORTH WEST ARROW -
โ†—↗ ↗ ↗NORTH EAST ARROW -
โ†˜↘ ↘ ↘SOUTH EAST ARROW -
โ†™↙ ↙ ↙SOUTH WEST ARROW -
โ†š↚ ↚LEFTWARDS ARROW WITH STROKE -
โ†›↛ ↛RIGHTWARDS ARROW WITH STROKE -
โ†↝ ↝RIGHTWARDS WAVE ARROW -
โ†ž↞ ↞LEFTWARDS TWO HEADED ARROW -
โ†ŸUPWARDS TWO HEADED ARROW -
โ† ↠ ↠RIGHTWARDS TWO HEADED ARROW -
โ†กDOWNWARDS TWO HEADED ARROW -
โ†ข↢ ↢LEFTWARDS ARROW WITH TAIL -
โ†ฃ↣ ↣RIGHTWARDS ARROW WITH TAIL -
โ†ค↤ ↤LEFTWARDS ARROW FROM BAR -
โ†ฅ↥ ↥UPWARDS ARROW FROM BAR -
โ†ฆ↦ ↦ ↦RIGHTWARDS ARROW FROM BAR -
โ†ง↧ ↧DOWNWARDS ARROW FROM BAR -
โ†ฉ↩ ↩LEFTWARDS ARROW WITH HOOK -
โ†ช↪ ↪RIGHTWARDS ARROW WITH HOOK -
โ†ซ↫ ↫LEFTWARDS ARROW WITH LOOP -
โ†ฌ↬ ↬RIGHTWARDS ARROW WITH LOOP -
โ†ญ↭ ↭LEFT RIGHT WAVE ARROW -
โ†ฎ↮ ↮LEFT RIGHT ARROW WITH STROKE -
โ†ฐ↰ ↰UPWARDS ARROW WITH TIP LEFTWARDS -
โ†ฑ↱ ↱UPWARDS ARROW WITH TIP RIGHTWARDS -
โ†ฒDOWNWARDS ARROW WITH TIP LEFTWARDS -
โ†ณDOWNWARDS ARROW WITH TIP RIGHTWARDS -
โ†ตDOWNWARDS ARROW WITH CORNER LEFTWARDS -
โ†ถ↶ ↶ANTICLOCKWISE TOP SEMICIRCLE ARROW -
โ†ท↷ ↷CLOCKWISE TOP SEMICIRCLE ARROW -
โ†บ↺ ↺ANTICLOCKWISE OPEN CIRCLE ARROW -
โ†ป↻ ↻CLOCKWISE OPEN CIRCLE ARROW -
โ†ผ↼ ↼ ↼LEFTWARDS HARPOON WITH BARB UPWARDS -
โ†ฝ↽ ↽ ↽LEFTWARDS HARPOON WITH BARB DOWNWARDS -
โ†พ↾ ↾ ↾UPWARDS HARPOON WITH BARB RIGHTWARDS -
โ†ฟ↿ ↿ ↿UPWARDS HARPOON WITH BARB LEFTWARDS -
โ‡€⇀ ⇀ ⇀RIGHTWARDS HARPOON WITH BARB UPWARDS -
โ‡⇁ ⇁ ⇁RIGHTWARDS HARPOON WITH BARB DOWNWARDS -
โ‡‚⇂ ⇂ ⇂DOWNWARDS HARPOON WITH BARB RIGHTWARDS -
โ‡ƒ⇃ ⇃ ⇃DOWNWARDS HARPOON WITH BARB LEFTWARDS -
โ‡„⇄ ⇄ ⇄RIGHTWARDS ARROW OVER LEFTWARDS ARROW -
โ‡…⇅ ⇅UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW -
โ‡†⇆ ⇆ ⇆LEFTWARDS ARROW OVER RIGHTWARDS ARROW -
โ‡‡⇇ ⇇LEFTWARDS PAIRED ARROWS -
โ‡ˆ⇈ ⇈UPWARDS PAIRED ARROWS -
โ‡‰⇉ ⇉RIGHTWARDS PAIRED ARROWS -
โ‡Š⇊ ⇊DOWNWARDS PAIRED ARROWS -
โ‡‹⇋ ⇋ ⇋LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -
โ‡Œ⇌ ⇌ ⇌RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -
โ‡⇍ ⇍LEFTWARDS DOUBLE ARROW WITH STROKE -
โ‡Ž⇎ ⇎LEFT RIGHT DOUBLE ARROW WITH STROKE -
โ‡⇏ ⇏RIGHTWARDS DOUBLE ARROW WITH STROKE -
โ‡⇐ ⇐ ⇐LEFTWARDS DOUBLE ARROW -
โ‡‘⇑ ⇑ ⇑UPWARDS DOUBLE ARROW -
โ‡’⇒ ⇒ ⇒ ⇒RIGHTWARDS DOUBLE ARROW -
โ‡“⇓ ⇓ ⇓DOWNWARDS DOUBLE ARROW -
โ‡”⇔ ⇔ ⇔ ⇔LEFT RIGHT DOUBLE ARROW -
โ‡•⇕ ⇕ ⇕UP DOWN DOUBLE ARROW -
โ‡–NORTH WEST DOUBLE ARROW -
โ‡—NORTH EAST DOUBLE ARROW -
โ‡˜SOUTH EAST DOUBLE ARROW -
โ‡™SOUTH WEST DOUBLE ARROW -
โ‡š⇚ ⇚LEFTWARDS TRIPLE ARROW -
โ‡›⇛ ⇛RIGHTWARDS TRIPLE ARROW -
โ‡RIGHTWARDS SQUIGGLE ARROW -
โ‡ค⇤ ⇤LEFTWARDS ARROW TO BAR -
โ‡ฅ⇥ ⇥RIGHTWARDS ARROW TO BAR -
โ‡ต⇵ ⇵DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW -
โ‡ฝLEFTWARDS OPEN-HEADED ARROW -
โ‡พRIGHTWARDS OPEN-HEADED ARROW -
โ‡ฟLEFT RIGHT OPEN-HEADED ARROW -
โˆ€∀ ∀FOR ALL -
โˆ∁ ∁COMPLEMENT -
โˆ‚∂ ∂PARTIAL DIFFERENTIAL -
โˆƒ∃ ∃THERE EXISTS -
โˆ„∄ ∄ ∄THERE DOES NOT EXIST -
โˆ…∅ ∅ ∅ ∅EMPTY SET -
โˆ‡∇ ∇NABLA -
โˆˆ∈ ∈ ∈ ∈ELEMENT OF -
โˆ‰∉ ∉ ∉NOT AN ELEMENT OF -
โˆ‹∋ ∋ ∋ ∋CONTAINS AS MEMBER -
โˆŒ∌ ∌ ∌DOES NOT CONTAIN AS MEMBER -
โˆ∏ ∏N-ARY PRODUCT -
โˆ∐ ∐N-ARY COPRODUCT -
โˆ‘∑ ∑N-ARY SUMMATION -
โˆ’MINUS SIGN -
โˆ“∓ ∓ ∓MINUS-OR-PLUS SIGN -
โˆ”∔ ∔DOT PLUS -
โˆ–∖ ∖ ∖ ∖ ∖SET MINUS -
โˆ—ASTERISK OPERATOR -
โˆ˜∘ ∘RING OPERATOR -
โˆš√ √SQUARE ROOT -
โˆ∝ ∝ ∝ ∝ ∝PROPORTIONAL TO -
โˆžINFINITY -
โˆŸRIGHT ANGLE -
โˆ ∠ ∠ANGLE -
โˆก∡ ∡MEASURED ANGLE -
โˆขSPHERICAL ANGLE -
โˆฃ∣ ∣ ∣ ∣DIVIDES -
โˆค∤ ∤ ∤ ∤DOES NOT DIVIDE -
โˆฅ∥ ∥ ∥ ∥ ∥PARALLEL TO -
โˆฆ∦ ∦ ∦ ∦ ∦NOT PARALLEL TO -
โˆง∧ ∧LOGICAL AND -
โˆจ∨ ∨LOGICAL OR -
โˆฉINTERSECTION -
โˆชUNION -
โˆซ∫ ∫INTEGRAL -
โˆฌDOUBLE INTEGRAL -
โˆญ∭ ∭TRIPLE INTEGRAL -
โˆฎ∮ ∮ ∮CONTOUR INTEGRAL -
โˆฏ∯ ∯SURFACE INTEGRAL -
โˆฐVOLUME INTEGRAL -
โˆฑCLOCKWISE INTEGRAL -
โˆฒ∲ ∲CLOCKWISE CONTOUR INTEGRAL -
โˆณ∳ ∳ANTICLOCKWISE CONTOUR INTEGRAL -
โˆด∴ ∴ ∴THEREFORE -
โˆต∵ ∵ ∵BECAUSE -
โˆถRATIO -
โˆท∷ ∷PROPORTION -
โˆธ∸ ∸DOT MINUS -
โˆบGEOMETRIC PROPORTION -
โˆปHOMOTHETIC -
โˆผ∼ ∼ ∼ ∼TILDE OPERATOR -
โˆฝ∽ ∽REVERSED TILDE -
โˆพ∾ ∾INVERTED LAZY S -
โˆฟSINE WAVE -
โ‰€≀ ≀ ≀WREATH PRODUCT -
โ‰≁ ≁NOT TILDE -
โ‰‚≂ ≂ ≂MINUS TILDE -
โ‰ƒ≃ ≃ ≃ASYMPTOTICALLY EQUAL TO -
โ‰„≄ ≄ ≄NOT ASYMPTOTICALLY EQUAL TO -
โ‰…≅ ≅APPROXIMATELY EQUAL TO -
โ‰†APPROXIMATELY BUT NOT ACTUALLY EQUAL TO -
โ‰‡≇ ≇NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -
โ‰ˆ≈ ≈ ≈ ≈ ≈ ≈ALMOST EQUAL TO -
โ‰‰≉ ≉ ≉NOT ALMOST EQUAL TO -
โ‰Š≊ ≊ALMOST EQUAL OR EQUAL TO -
โ‰‹TRIPLE TILDE -
โ‰Œ≌ ≌ALL EQUAL TO -
โ‰≍ ≍EQUIVALENT TO -
โ‰Ž≎ ≎ ≎GEOMETRICALLY EQUIVALENT TO -
โ‰≏ ≏ ≏DIFFERENCE BETWEEN -
โ‰≐ ≐ ≐APPROACHES THE LIMIT -
โ‰‘≑ ≑GEOMETRICALLY EQUAL TO -
โ‰’≒ ≒APPROXIMATELY EQUAL TO OR THE IMAGE OF -
โ‰“≓ ≓IMAGE OF OR APPROXIMATELY EQUAL TO -
โ‰”≔ ≔ ≔COLON EQUALS -
โ‰•≕ ≕EQUALS COLON -
โ‰–≖ ≖RING IN EQUAL TO -
โ‰—≗ ≗RING EQUAL TO -
โ‰™ESTIMATES -
โ‰šEQUIANGULAR TO -
โ‰œ≜ ≜DELTA EQUAL TO -
โ‰Ÿ≟ ≟QUESTIONED EQUAL TO -
โ‰ ≠ ≠NOT EQUAL TO -
โ‰ก≡ ≡IDENTICAL TO -
โ‰ข≢ ≢NOT IDENTICAL TO -
โ‰ค≤ ≤LESS-THAN OR EQUAL TO -
โ‰ฅ≥ ≥ ≥GREATER-THAN OR EQUAL TO -
โ‰ฆ≦ ≦ ≦LESS-THAN OVER EQUAL TO -
โ‰ง≧ ≧ ≧GREATER-THAN OVER EQUAL TO -
โ‰จ≨ ≨LESS-THAN BUT NOT EQUAL TO -
โ‰ฉ≩ ≩GREATER-THAN BUT NOT EQUAL TO -
โ‰ช≪ ≪ ≪MUCH LESS-THAN -
โ‰ซ≫ ≫ ≫MUCH GREATER-THAN -
โ‰ฌ≬ ≬BETWEEN -
โ‰ญNOT EQUIVALENT TO -
โ‰ฎ≮ ≮ ≮NOT LESS-THAN -
โ‰ฏ≯ ≯ ≯NOT GREATER-THAN -
โ‰ฐ≰ ≰ ≰NEITHER LESS-THAN NOR EQUAL TO -
โ‰ฑ≱ ≱ ≱NEITHER GREATER-THAN NOR EQUAL TO -
โ‰ฒ≲ ≲ ≲LESS-THAN OR EQUIVALENT TO -
โ‰ณ≳ ≳ ≳GREATER-THAN OR EQUIVALENT TO -
โ‰ด≴ ≴NEITHER LESS-THAN NOR EQUIVALENT TO -
โ‰ต≵ ≵NEITHER GREATER-THAN NOR EQUIVALENT TO -
โ‰ถ≶ ≶ ≶LESS-THAN OR GREATER-THAN -
โ‰ท≷ ≷ ≷GREATER-THAN OR LESS-THAN -
โ‰ธ≸ ≸NEITHER LESS-THAN NOR GREATER-THAN -
โ‰น≹ ≹NEITHER GREATER-THAN NOR LESS-THAN -
โ‰บ≺ ≺ ≺PRECEDES -
โ‰ป≻ ≻ ≻SUCCEEDS -
โ‰ผ≼ ≼ ≼PRECEDES OR EQUAL TO -
โ‰ฝ≽ ≽ ≽SUCCEEDS OR EQUAL TO -
โ‰พ≾ ≾ ≾PRECEDES OR EQUIVALENT TO -
โ‰ฟ≿ ≿ ≿SUCCEEDS OR EQUIVALENT TO -
โŠ€⊀ ⊀ ⊀DOES NOT PRECEDE -
โЁ⊁ ⊁ ⊁DOES NOT SUCCEED -
โŠ‚⊂ ⊂SUBSET OF -
โŠƒ⊃ ⊃ ⊃SUPERSET OF -
โŠ„NOT A SUBSET OF -
โŠ…NOT A SUPERSET OF -
โІ⊆ ⊆ ⊆SUBSET OF OR EQUAL TO -
โЇ⊇ ⊇ ⊇SUPERSET OF OR EQUAL TO -
โŠˆ⊈ ⊈ ⊈NEITHER A SUBSET OF NOR EQUAL TO -
โЉ⊉ ⊉ ⊉NEITHER A SUPERSET OF NOR EQUAL TO -
โŠŠ⊊ ⊊SUBSET OF WITH NOT EQUAL TO -
โŠ‹⊋ ⊋SUPERSET OF WITH NOT EQUAL TO -
โŠMULTISET MULTIPLICATION -
โŠŽ⊎ ⊎MULTISET UNION -
โŠ⊏ ⊏ ⊏SQUARE IMAGE OF -
โА⊐ ⊐ ⊐SQUARE ORIGINAL OF -
โŠ‘⊑ ⊑ ⊑SQUARE IMAGE OF OR EQUAL TO -
โŠ’⊒ ⊒ ⊒SQUARE ORIGINAL OF OR EQUAL TO -
โŠ“⊓ ⊓SQUARE CAP -
โŠ”⊔ ⊔SQUARE CUP -
โŠ•⊕ ⊕CIRCLED PLUS -
โŠ–⊖ ⊖CIRCLED MINUS -
โŠ—⊗ ⊗CIRCLED TIMES -
โŠ˜CIRCLED DIVISION SLASH -
โŠ™⊙ ⊙CIRCLED DOT OPERATOR -
โŠš⊚ ⊚CIRCLED RING OPERATOR -
โŠ›⊛ ⊛CIRCLED ASTERISK OPERATOR -
โŠ⊝ ⊝CIRCLED DASH -
โŠž⊞ ⊞SQUARED PLUS -
โŠŸ⊟ ⊟SQUARED MINUS -
โŠ ⊠ ⊠SQUARED TIMES -
โŠก⊡ ⊡SQUARED DOT OPERATOR -
โŠข⊢ ⊢RIGHT TACK -
โŠฃ⊣ ⊣LEFT TACK -
โŠค⊤ ⊤DOWN TACK -
โŠฅ⊥ ⊥ ⊥ ⊥UP TACK -
โŠงMODELS -
โŠจ⊨ ⊨TRUE -
โŠฉFORCES -
โŠชTRIPLE VERTICAL BAR RIGHT TURNSTILE -
โŠซDOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -
โŠฌDOES NOT PROVE -
โŠญNOT TRUE -
โŠฎDOES NOT FORCE -
โŠฏNEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -
โŠฐPRECEDES UNDER RELATION -
โŠฒ⊲ ⊲ ⊲NORMAL SUBGROUP OF -
โŠณ⊳ ⊳ ⊳CONTAINS AS NORMAL SUBGROUP -
โŠด⊴ ⊴ ⊴NORMAL SUBGROUP OF OR EQUAL TO -
โŠต⊵ ⊵ ⊵CONTAINS AS NORMAL SUBGROUP OR EQUAL TO -
โŠถORIGINAL OF -
โŠทIMAGE OF -
โŠธ⊸ ⊸MULTIMAP -
โŠนHERMITIAN CONJUGATE MATRIX -
โŠบ⊺ ⊺INTERCALATE -
โŠปXOR -
โŠฝNOR -
โŠพRIGHT ANGLE WITH ARC -
โŠฟRIGHT TRIANGLE -
โ‹€⋀ ⋀ ⋀N-ARY LOGICAL AND -
โ‹⋁ ⋁ ⋁N-ARY LOGICAL OR -
โ‹‚⋂ ⋂ ⋂N-ARY INTERSECTION -
โ‹ƒ⋃ ⋃ ⋃N-ARY UNION -
โ‹„⋄ ⋄ ⋄DIAMOND OPERATOR -
โ‹…DOT OPERATOR -
โ‹†⋆ ⋆STAR OPERATOR -
โ‹‡⋇ ⋇DIVISION TIMES -
โ‹ˆBOWTIE -
โ‹‰LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -
โ‹ŠRIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -
โ‹‹⋋ ⋋LEFT SEMIDIRECT PRODUCT -
โ‹Œ⋌ ⋌RIGHT SEMIDIRECT PRODUCT -
โ‹⋍ ⋍REVERSED TILDE EQUALS -
โ‹Ž⋎ ⋎CURLY LOGICAL OR -
โ‹⋏ ⋏CURLY LOGICAL AND -
โ‹⋐ ⋐DOUBLE SUBSET -
โ‹‘⋑ ⋑DOUBLE SUPERSET -
โ‹’DOUBLE INTERSECTION -
โ‹“DOUBLE UNION -
โ‹”⋔ ⋔PITCHFORK -
โ‹•EQUAL AND PARALLEL TO -
โ‹–⋖ ⋖LESS-THAN WITH DOT -
โ‹—⋗ ⋗GREATER-THAN WITH DOT -
โ‹˜VERY MUCH LESS-THAN -
โ‹™⋙ ⋙VERY MUCH GREATER-THAN -
โ‹š⋚ ⋚ ⋚LESS-THAN EQUAL TO OR GREATER-THAN -
โ‹›⋛ ⋛ ⋛GREATER-THAN EQUAL TO OR LESS-THAN -
โ‹ž⋞ ⋞EQUAL TO OR PRECEDES -
โ‹Ÿ⋟ ⋟EQUAL TO OR SUCCEEDS -
โ‹ ⋠ ⋠DOES NOT PRECEDE OR EQUAL -
โ‹ก⋡ ⋡DOES NOT SUCCEED OR EQUAL -
โ‹ข⋢ ⋢NOT SQUARE IMAGE OF OR EQUAL TO -
โ‹ฃ⋣ ⋣NOT SQUARE ORIGINAL OF OR EQUAL TO -
โ‹ฆLESS-THAN BUT NOT EQUIVALENT TO -
โ‹งGREATER-THAN BUT NOT EQUIVALENT TO -
โ‹จ⋨ ⋨PRECEDES BUT NOT EQUIVALENT TO -
โ‹ฉ⋩ ⋩SUCCEEDS BUT NOT EQUIVALENT TO -
โ‹ช⋪ ⋪ ⋪NOT NORMAL SUBGROUP OF -
โ‹ซ⋫ ⋫ ⋫DOES NOT CONTAIN AS NORMAL SUBGROUP -
โ‹ฌ⋬ ⋬ ⋬NOT NORMAL SUBGROUP OF OR EQUAL TO -
โ‹ญ⋭ ⋭ ⋭DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -
โ‹ฎVERTICAL ELLIPSIS -
โ‹ฏMIDLINE HORIZONTAL ELLIPSIS -
โ‹ฐUP RIGHT DIAGONAL ELLIPSIS -
โ‹ฑDOWN RIGHT DIAGONAL ELLIPSIS -
โ‹ฒELEMENT OF WITH LONG HORIZONTAL STROKE -
โ‹ณELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -
โ‹ดSMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -
โ‹ตELEMENT OF WITH DOT ABOVE -
โ‹ถELEMENT OF WITH OVERBAR -
โ‹ทSMALL ELEMENT OF WITH OVERBAR -
โ‹นELEMENT OF WITH TWO HORIZONTAL STROKES -
โ‹บCONTAINS WITH LONG HORIZONTAL STROKE -
โ‹ปCONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -
โ‹ผSMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -
โ‹ฝCONTAINS WITH OVERBAR -
โ‹พSMALL CONTAINS WITH OVERBAR -
โŒ…⌅ ⌅PROJECTIVE -
โŒ†⌆ ⌆PERSPECTIVE -
โŒˆ⌈ ⌈LEFT CEILING -
โŒ‰⌉ ⌉RIGHT CEILING -
โŒŠ⌊ ⌊LEFT FLOOR -
โŒ‹⌋ ⌋RIGHT FLOOR -
โŒŒBOTTOM RIGHT CROP -
โŒBOTTOM LEFT CROP -
โŒŽTOP RIGHT CROP -
โŒTOP LEFT CROP -
โŒREVERSED NOT SIGN -
โŒ’ARC -
โŒ“SEGMENT -
โŒ•TELEPHONE RECORDER -
โŒ–POSITION INDICATOR -
โŒœ⌜ ⌜TOP LEFT CORNER -
โŒ⌝ ⌝TOP RIGHT CORNER -
โŒž⌞ ⌞BOTTOM LEFT CORNER -
โŒŸ⌟ ⌟BOTTOM RIGHT CORNER -
โŒข⌢ ⌢FROWN -
โŒฃ⌣ ⌣SMILE -
โŒญCYLINDRICITY -
โŒฎALL AROUND-PROFILE -
โŒถAPL FUNCTIONAL SYMBOL I-BEAM -
โŒฝAPL FUNCTIONAL SYMBOL CIRCLE STILE -
โŒฟAPL FUNCTIONAL SYMBOL SLASH BAR -
โผRIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW -
โŽฐ⎰ ⎰UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION -
โŽฑ⎱ ⎱UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION -
โŽด⎴ ⎴TOP SQUARE BRACKET -
โŽต⎵ ⎵BOTTOM SQUARE BRACKET -
โŽถBOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET -
โœTOP PARENTHESIS -
โBOTTOM PARENTHESIS -
โžTOP CURLY BRACKET -
โŸBOTTOM CURLY BRACKET -
โขWHITE TRAPEZIUM -
โงELECTRICAL INTERSECTION -
โฃOPEN BOX -
โ“ˆⓈ ⓈCIRCLED LATIN CAPITAL LETTER S -
โ”€─ ─BOX DRAWINGS LIGHT HORIZONTAL -
โ”‚BOX DRAWINGS LIGHT VERTICAL -
โ”ŒBOX DRAWINGS LIGHT DOWN AND RIGHT -
โ”BOX DRAWINGS LIGHT DOWN AND LEFT -
โ””BOX DRAWINGS LIGHT UP AND RIGHT -
โ”˜BOX DRAWINGS LIGHT UP AND LEFT -
โ”œBOX DRAWINGS LIGHT VERTICAL AND RIGHT -
โ”คBOX DRAWINGS LIGHT VERTICAL AND LEFT -
โ”ฌBOX DRAWINGS LIGHT DOWN AND HORIZONTAL -
โ”ดBOX DRAWINGS LIGHT UP AND HORIZONTAL -
โ”ผBOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -
โ•BOX DRAWINGS DOUBLE HORIZONTAL -
โ•‘BOX DRAWINGS DOUBLE VERTICAL -
โ•’BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -
โ•“BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -
โ•”BOX DRAWINGS DOUBLE DOWN AND RIGHT -
โ••BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -
โ•–BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -
โ•—BOX DRAWINGS DOUBLE DOWN AND LEFT -
โ•˜BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -
โ•™BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -
โ•šBOX DRAWINGS DOUBLE UP AND RIGHT -
โ•›BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -
โ•œBOX DRAWINGS UP DOUBLE AND LEFT SINGLE -
โ•BOX DRAWINGS DOUBLE UP AND LEFT -
โ•žBOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -
โ•ŸBOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -
โ• BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -
โ•กBOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -
โ•ขBOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -
โ•ฃBOX DRAWINGS DOUBLE VERTICAL AND LEFT -
โ•คBOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -
โ•ฅBOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -
โ•ฆBOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -
โ•งBOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -
โ•จBOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -
โ•ฉBOX DRAWINGS DOUBLE UP AND HORIZONTAL -
โ•ชBOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -
โ•ซBOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -
โ•ฌBOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -
โ–€UPPER HALF BLOCK -
โ–„LOWER HALF BLOCK -
โ–ˆFULL BLOCK -
โ–‘LIGHT SHADE -
โ–’MEDIUM SHADE -
โ–“DARK SHADE -
โ–ก□ □ □WHITE SQUARE -
โ–ช▪ ▪ ▪ ▪BLACK SMALL SQUARE -
โ–ซWHITE SMALL SQUARE -
โ–ญWHITE RECTANGLE -
โ–ฎBLACK VERTICAL RECTANGLE -
โ–ฑWHITE PARALLELOGRAM -
โ–ณ△ △WHITE UP-POINTING TRIANGLE -
โ–ด▴ ▴BLACK UP-POINTING SMALL TRIANGLE -
โ–ต▵ ▵WHITE UP-POINTING SMALL TRIANGLE -
โ–ธ▸ ▸BLACK RIGHT-POINTING SMALL TRIANGLE -
โ–น▹ ▹WHITE RIGHT-POINTING SMALL TRIANGLE -
โ–ฝ▽ ▽WHITE DOWN-POINTING TRIANGLE -
โ–พ▾ ▾BLACK DOWN-POINTING SMALL TRIANGLE -
โ–ฟ▿ ▿WHITE DOWN-POINTING SMALL TRIANGLE -
โ—‚◂ ◂BLACK LEFT-POINTING SMALL TRIANGLE -
โ—ƒ◃ ◃WHITE LEFT-POINTING SMALL TRIANGLE -
โ—Š◊ ◊LOZENGE -
โ—‹WHITE CIRCLE -
โ—ฌWHITE UP-POINTING TRIANGLE WITH DOT -
โ—ฏ◯ ◯LARGE CIRCLE -
โ—ธUPPER LEFT TRIANGLE -
โ—นUPPER RIGHT TRIANGLE -
โ—บLOWER LEFT TRIANGLE -
โ—ปWHITE MEDIUM SQUARE -
โ—ผBLACK MEDIUM SQUARE -
โ˜…★ ★BLACK STAR -
โ˜†WHITE STAR -
โ˜ŽBLACK TELEPHONE -
โ™€FEMALE SIGN -
โ™‚MALE SIGN -
โ™ ♠ ♠BLACK SPADE SUIT -
โ™ฃ♣ ♣BLACK CLUB SUIT -
โ™ฅ♥ ♥BLACK HEART SUIT -
โ™ฆ♦ ♦BLACK DIAMOND SUIT -
โ™ชEIGHTH NOTE -
โ™ญMUSIC FLAT SIGN -
โ™ฎ♮ ♮MUSIC NATURAL SIGN -
โ™ฏMUSIC SHARP SIGN -
โœ“✓ ✓CHECK MARK -
โœ—BALLOT X -
โœ ✠ ✠MALTESE CROSS -
โœถSIX POINTED BLACK STAR -
โ˜LIGHT VERTICAL BAR -
โฒLIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT -
โณLIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT -
โŸฆ⟦ ⟦MATHEMATICAL LEFT WHITE SQUARE BRACKET -
โŸง⟧ ⟧MATHEMATICAL RIGHT WHITE SQUARE BRACKET -
โŸจ⟨ ⟨ ⟨MATHEMATICAL LEFT ANGLE BRACKET -
โŸฉ⟩ ⟩ ⟩MATHEMATICAL RIGHT ANGLE BRACKET -
โŸชMATHEMATICAL LEFT DOUBLE ANGLE BRACKET -
โŸซMATHEMATICAL RIGHT DOUBLE ANGLE BRACKET -
โŸฌMATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET -
โŸญMATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET -
โŸต⟵ ⟵ ⟵LONG LEFTWARDS ARROW -
โŸถ⟶ ⟶ ⟶LONG RIGHTWARDS ARROW -
โŸท⟷ ⟷ ⟷LONG LEFT RIGHT ARROW -
โŸธ⟸ ⟸ ⟸LONG LEFTWARDS DOUBLE ARROW -
โŸน⟹ ⟹ ⟹LONG RIGHTWARDS DOUBLE ARROW -
โŸบ⟺ ⟺ ⟺LONG LEFT RIGHT DOUBLE ARROW -
โŸผ⟼ ⟼LONG RIGHTWARDS ARROW FROM BAR -
โŸฟLONG RIGHTWARDS SQUIGGLE ARROW -
โค‚LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE -
โคƒRIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE -
โค„LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE -
โค…RIGHTWARDS TWO-HEADED ARROW FROM BAR -
โคŒLEFTWARDS DOUBLE DASH ARROW -
โค⤍ ⤍RIGHTWARDS DOUBLE DASH ARROW -
โคŽLEFTWARDS TRIPLE DASH ARROW -
โค⤏ ⤏RIGHTWARDS TRIPLE DASH ARROW -
โค⤐ ⤐RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW -
โค‘RIGHTWARDS ARROW WITH DOTTED STEM -
โค’UPWARDS ARROW TO BAR -
โค“DOWNWARDS ARROW TO BAR -
โค–RIGHTWARDS TWO-HEADED ARROW WITH TAIL -
โค™LEFTWARDS ARROW-TAIL -
โคšRIGHTWARDS ARROW-TAIL -
โค›LEFTWARDS DOUBLE ARROW-TAIL -
โคœRIGHTWARDS DOUBLE ARROW-TAIL -
โคLEFTWARDS ARROW TO BLACK DIAMOND -
โคžRIGHTWARDS ARROW TO BLACK DIAMOND -
โคŸLEFTWARDS ARROW FROM BAR TO BLACK DIAMOND -
โค RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND -
โคฃNORTH WEST ARROW WITH HOOK -
โคคNORTH EAST ARROW WITH HOOK -
โคฅ⤥ ⤥SOUTH EAST ARROW WITH HOOK -
โคฆ⤦ ⤦SOUTH WEST ARROW WITH HOOK -
โคงNORTH WEST ARROW AND NORTH EAST ARROW -
โคจ⤨ ⤨NORTH EAST ARROW AND SOUTH EAST ARROW -
โคฉ⤩ ⤩SOUTH EAST ARROW AND SOUTH WEST ARROW -
โคชSOUTH WEST ARROW AND NORTH WEST ARROW -
โคณWAVE ARROW POINTING DIRECTLY RIGHT -
โคตARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS -
โคถARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS -
โคทARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS -
โคธRIGHT-SIDE ARC CLOCKWISE ARROW -
โคนLEFT-SIDE ARC ANTICLOCKWISE ARROW -
โคผTOP ARC CLOCKWISE ARROW WITH MINUS -
โคฝTOP ARC ANTICLOCKWISE ARROW WITH PLUS -
โฅ…RIGHTWARDS ARROW WITH PLUS BELOW -
โฅˆLEFT RIGHT ARROW THROUGH SMALL CIRCLE -
โฅ‰UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE -
โฅŠLEFT BARB UP RIGHT BARB DOWN HARPOON -
โฅ‹LEFT BARB DOWN RIGHT BARB UP HARPOON -
โฅŽLEFT BARB UP RIGHT BARB UP HARPOON -
โฅUP BARB RIGHT DOWN BARB RIGHT HARPOON -
โฅLEFT BARB DOWN RIGHT BARB DOWN HARPOON -
โฅ‘UP BARB LEFT DOWN BARB LEFT HARPOON -
โฅ’LEFTWARDS HARPOON WITH BARB UP TO BAR -
โฅ“RIGHTWARDS HARPOON WITH BARB UP TO BAR -
โฅ”UPWARDS HARPOON WITH BARB RIGHT TO BAR -
โฅ•DOWNWARDS HARPOON WITH BARB RIGHT TO BAR -
โฅ–LEFTWARDS HARPOON WITH BARB DOWN TO BAR -
โฅ—RIGHTWARDS HARPOON WITH BARB DOWN TO BAR -
โฅ˜UPWARDS HARPOON WITH BARB LEFT TO BAR -
โฅ™DOWNWARDS HARPOON WITH BARB LEFT TO BAR -
โฅšLEFTWARDS HARPOON WITH BARB UP FROM BAR -
โฅ›RIGHTWARDS HARPOON WITH BARB UP FROM BAR -
โฅœUPWARDS HARPOON WITH BARB RIGHT FROM BAR -
โฅDOWNWARDS HARPOON WITH BARB RIGHT FROM BAR -
โฅžLEFTWARDS HARPOON WITH BARB DOWN FROM BAR -
โฅŸRIGHTWARDS HARPOON WITH BARB DOWN FROM BAR -
โฅ UPWARDS HARPOON WITH BARB LEFT FROM BAR -
โฅกDOWNWARDS HARPOON WITH BARB LEFT FROM BAR -
โฅขLEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN -
โฅฃUPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT -
โฅคRIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN -
โฅฅDOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT -
โฅฆLEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP -
โฅงLEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN -
โฅจRIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP -
โฅฉRIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN -
โฅชLEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH -
โฅซLEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH -
โฅฌRIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH -
โฅญRIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH -
โฅฎ⥮ ⥮UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT -
โฅฏ⥯ ⥯DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT -
โฅฐRIGHT DOUBLE ARROW WITH ROUNDED HEAD -
โฅฑEQUALS SIGN ABOVE RIGHTWARDS ARROW -
โฅฒTILDE OPERATOR ABOVE RIGHTWARDS ARROW -
โฅณLEFTWARDS ARROW ABOVE TILDE OPERATOR -
โฅดRIGHTWARDS ARROW ABOVE TILDE OPERATOR -
โฅตRIGHTWARDS ARROW ABOVE ALMOST EQUAL TO -
โฅถLESS-THAN ABOVE LEFTWARDS ARROW -
โฅธGREATER-THAN ABOVE RIGHTWARDS ARROW -
โฅนSUBSET ABOVE RIGHTWARDS ARROW -
โฅปSUPERSET ABOVE LEFTWARDS ARROW -
โฅผLEFT FISH TAIL -
โฅฝRIGHT FISH TAIL -
โฅพUP FISH TAIL -
โฅฟ⥿⥿⥿DOWN FISH TAIL -
โฆ…LEFT WHITE PARENTHESIS -
โฆ†RIGHT WHITE PARENTHESIS -
โฆ‹LEFT SQUARE BRACKET WITH UNDERBAR -
โฆŒRIGHT SQUARE BRACKET WITH UNDERBAR -
โฆLEFT SQUARE BRACKET WITH TICK IN TOP CORNER -
โฆŽRIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER -
โฆLEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER -
โฆRIGHT SQUARE BRACKET WITH TICK IN TOP CORNER -
โฆ‘LEFT ANGLE BRACKET WITH DOT -
โฆ’RIGHT ANGLE BRACKET WITH DOT -
โฆ“LEFT ARC LESS-THAN BRACKET -
โฆ”RIGHT ARC GREATER-THAN BRACKET -
โฆ•DOUBLE LEFT ARC GREATER-THAN BRACKET -
โฆ–DOUBLE RIGHT ARC LESS-THAN BRACKET -
โฆšVERTICAL ZIGZAG LINE -
โฆœRIGHT ANGLE VARIANT WITH SQUARE -
โฆMEASURED RIGHT ANGLE WITH DOT -
โฆคANGLE WITH UNDERBAR -
โฆฅREVERSED ANGLE WITH UNDERBAR -
โฆฆOBLIQUE ANGLE OPENING UP -
โฆงOBLIQUE ANGLE OPENING DOWN -
โฆจMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT -
โฆฉMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT -
โฆชMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT -
โฆซMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT -
โฆฌMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP -
โฆญMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP -
โฆฎMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN -
โฆฏMEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN -
โฆฐREVERSED EMPTY SET -
โฆฑEMPTY SET WITH OVERBAR -
โฆฒEMPTY SET WITH SMALL CIRCLE ABOVE -
โฆณEMPTY SET WITH RIGHT ARROW ABOVE -
โฆดEMPTY SET WITH LEFT ARROW ABOVE -
โฆตCIRCLE WITH HORIZONTAL BAR -
โฆถCIRCLED VERTICAL BAR -
โฆทCIRCLED PARALLEL -
โฆนCIRCLED PERPENDICULAR -
โฆปCIRCLE WITH SUPERIMPOSED X -
โฆผCIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN -
โฆพCIRCLED WHITE BULLET -
โฆฟ⦿⦿⦿CIRCLED BULLET -
โง€CIRCLED LESS-THAN -
โงCIRCLED GREATER-THAN -
โง‚CIRCLE WITH SMALL CIRCLE TO THE RIGHT -
โงƒCIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT -
โง„SQUARED RISING DIAGONAL SLASH -
โง…SQUARED FALLING DIAGONAL SLASH -
โง‰TWO JOINED SQUARES -
โงTRIANGLE WITH SERIFS AT BOTTOM -
โงŽRIGHT TRIANGLE ABOVE LEFT TRIANGLE -
โงLEFT TRIANGLE BESIDE VERTICAL BAR -
โงVERTICAL BAR BESIDE RIGHT TRIANGLE -
โงš∽̱LEFT DOUBLE WIGGLY FENCE -
โงœINCOMPLETE INFINITY -
โงTIE OVER INFINITY -
โงžINFINITY NEGATED WITH VERTICAL BAR -
โงฃEQUALS SIGN AND SLANTED PARALLEL -
โงคEQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE -
โงฅIDENTICAL TO AND SLANTED PARALLEL -
โงซ⧫ ⧫BLACK LOZENGE -
โงดRULE-DELAYED -
โงถSOLIDUS WITH OVERBAR -
โจ€⨀ ⨀N-ARY CIRCLED DOT OPERATOR -
โจ⨁ ⨁N-ARY CIRCLED PLUS OPERATOR -
โจ‚⨂ ⨂N-ARY CIRCLED TIMES OPERATOR -
โจ„⨄ ⨄N-ARY UNION OPERATOR WITH PLUS -
โจ†⨆ ⨆N-ARY SQUARE UNION OPERATOR -
โจŒ⨌ ⨌QUADRUPLE INTEGRAL OPERATOR -
โจFINITE PART INTEGRAL -
โจCIRCULATION FUNCTION -
โจ‘ANTICLOCKWISE INTEGRATION -
โจ’LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE -
โจ“LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE -
โจ”LINE INTEGRATION NOT INCLUDING THE POLE -
โจ•INTEGRAL AROUND A POINT OPERATOR -
โจ–QUATERNION INTEGRAL OPERATOR -
โจ—INTEGRAL WITH LEFTWARDS ARROW WITH HOOK -
โจขPLUS SIGN WITH SMALL CIRCLE ABOVE -
โจฃPLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE -
โจคPLUS SIGN WITH TILDE ABOVE -
โจฅPLUS SIGN WITH DOT BELOW -
โจฆPLUS SIGN WITH TILDE BELOW -
โจงPLUS SIGN WITH SUBSCRIPT TWO -
โจฉMINUS SIGN WITH COMMA ABOVE -
โจชMINUS SIGN WITH DOT BELOW -
โจญPLUS SIGN IN LEFT HALF CIRCLE -
โจฎPLUS SIGN IN RIGHT HALF CIRCLE -
โจฏVECTOR OR CROSS PRODUCT -
โจฐMULTIPLICATION SIGN WITH DOT ABOVE -
โจฑMULTIPLICATION SIGN WITH UNDERBAR -
โจณSMASH PRODUCT -
โจดMULTIPLICATION SIGN IN LEFT HALF CIRCLE -
โจตMULTIPLICATION SIGN IN RIGHT HALF CIRCLE -
โจถCIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT -
โจทMULTIPLICATION SIGN IN DOUBLE CIRCLE -
โจธCIRCLED DIVISION SIGN -
โจนPLUS SIGN IN TRIANGLE -
โจบMINUS SIGN IN TRIANGLE -
โจปMULTIPLICATION SIGN IN TRIANGLE -
โจผ⨼ ⨼INTERIOR PRODUCT -
โจฟ⨿⨿⨿AMALGAMATION OR COPRODUCT -
โฉ€INTERSECTION WITH DOT -
โฉ‚UNION WITH OVERBAR -
โฉƒINTERSECTION WITH OVERBAR -
โฉ„INTERSECTION WITH LOGICAL AND -
โฉ…UNION WITH LOGICAL OR -
โฉ†UNION ABOVE INTERSECTION -
โฉ‡INTERSECTION ABOVE UNION -
โฉˆUNION ABOVE BAR ABOVE INTERSECTION -
โฉ‰INTERSECTION ABOVE BAR ABOVE UNION -
โฉŠUNION BESIDE AND JOINED WITH UNION -
โฉ‹INTERSECTION BESIDE AND JOINED WITH INTERSECTION -
โฉŒCLOSED UNION WITH SERIFS -
โฉCLOSED INTERSECTION WITH SERIFS -
โฉCLOSED UNION WITH SERIFS AND SMASH PRODUCT -
โฉ“DOUBLE LOGICAL AND -
โฉ”DOUBLE LOGICAL OR -
โฉ•TWO INTERSECTING LOGICAL AND -
โฉ–TWO INTERSECTING LOGICAL OR -
โฉ—SLOPING LARGE OR -
โฉ˜SLOPING LARGE AND -
โฉšLOGICAL AND WITH MIDDLE STEM -
โฉ›LOGICAL OR WITH MIDDLE STEM -
โฉœLOGICAL AND WITH HORIZONTAL DASH -
โฉLOGICAL OR WITH HORIZONTAL DASH -
โฉŸLOGICAL AND WITH UNDERBAR -
โฉฆEQUALS SIGN WITH DOT BELOW -
โฉชTILDE OPERATOR WITH DOT ABOVE -
โฉญCONGRUENT WITH DOT ABOVE -
โฉฎEQUALS WITH ASTERISK -
โฉฏALMOST EQUAL TO WITH CIRCUMFLEX ACCENT -
โฉฐAPPROXIMATELY EQUAL OR EQUAL TO -
โฉฑEQUALS SIGN ABOVE PLUS SIGN -
โฉฒPLUS SIGN ABOVE EQUALS SIGN -
โฉณEQUALS SIGN ABOVE TILDE OPERATOR -
โฉดDOUBLE COLON EQUAL -
โฉตTWO CONSECUTIVE EQUALS SIGNS -
โฉท⩷ ⩷EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW -
โฉธEQUIVALENT WITH FOUR DOTS ABOVE -
โฉนLESS-THAN WITH CIRCLE INSIDE -
โฉบGREATER-THAN WITH CIRCLE INSIDE -
โฉปLESS-THAN WITH QUESTION MARK ABOVE -
โฉผGREATER-THAN WITH QUESTION MARK ABOVE -
โฉฝ⩽ ⩽ ⩽LESS-THAN OR SLANTED EQUAL TO -
โฉพ⩾ ⩾ ⩾GREATER-THAN OR SLANTED EQUAL TO -
โฉฟ⩿⩿⩿LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE -
โช€GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE -
โชLESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE -
โช‚GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE -
โชƒLESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT -
โช„GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT -
โช…⪅ ⪅LESS-THAN OR APPROXIMATE -
โช†⪆ ⪆GREATER-THAN OR APPROXIMATE -
โช‡⪇ ⪇LESS-THAN AND SINGLE-LINE NOT EQUAL TO -
โชˆ⪈ ⪈GREATER-THAN AND SINGLE-LINE NOT EQUAL TO -
โช‰⪉ ⪉LESS-THAN AND NOT APPROXIMATE -
โชŠ⪊ ⪊GREATER-THAN AND NOT APPROXIMATE -
โช‹⪋ ⪋LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN -
โชŒ⪌ ⪌GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN -
โชLESS-THAN ABOVE SIMILAR OR EQUAL -
โชŽGREATER-THAN ABOVE SIMILAR OR EQUAL -
โชLESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN -
โชGREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN -
โช‘LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL -
โช’GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL -
โช“LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL -
โช”GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL -
โช•⪕ ⪕SLANTED EQUAL TO OR LESS-THAN -
โช–⪖ ⪖SLANTED EQUAL TO OR GREATER-THAN -
โช—SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE -
โช˜SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE -
โช™DOUBLE-LINE EQUAL TO OR LESS-THAN -
โชšDOUBLE-LINE EQUAL TO OR GREATER-THAN -
โชSIMILAR OR LESS-THAN -
โชžSIMILAR OR GREATER-THAN -
โชŸSIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN -
โช SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN -
โชกDOUBLE NESTED LESS-THAN -
โชขDOUBLE NESTED GREATER-THAN -
โชคGREATER-THAN OVERLAPPING LESS-THAN -
โชฅGREATER-THAN BESIDE LESS-THAN -
โชฆLESS-THAN CLOSED BY CURVE -
โชงGREATER-THAN CLOSED BY CURVE -
โชจLESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL -
โชฉGREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL -
โชชSMALLER THAN -
โชซLARGER THAN -
โชฌSMALLER THAN OR EQUAL TO -
โชญLARGER THAN OR EQUAL TO -
โชฎEQUALS SIGN WITH BUMPY ABOVE -
โชฏ⪯ ⪯ ⪯PRECEDES ABOVE SINGLE-LINE EQUALS SIGN -
โชฐ⪰ ⪰ ⪰SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN -
โชณPRECEDES ABOVE EQUALS SIGN -
โชดSUCCEEDS ABOVE EQUALS SIGN -
โชต⪵ ⪵PRECEDES ABOVE NOT EQUAL TO -
โชถ⪶ ⪶SUCCEEDS ABOVE NOT EQUAL TO -
โชท⪷ ⪷PRECEDES ABOVE ALMOST EQUAL TO -
โชธ⪸ ⪸SUCCEEDS ABOVE ALMOST EQUAL TO -
โชน⪹ ⪹PRECEDES ABOVE NOT ALMOST EQUAL TO -
โชบ⪺ ⪺SUCCEEDS ABOVE NOT ALMOST EQUAL TO -
โชปDOUBLE PRECEDES -
โชผDOUBLE SUCCEEDS -
โชฝSUBSET WITH DOT -
โชพSUPERSET WITH DOT -
โชฟ⪿⪿⪿SUBSET WITH PLUS SIGN BELOW -
โซ€SUPERSET WITH PLUS SIGN BELOW -
โซSUBSET WITH MULTIPLICATION SIGN BELOW -
โซ‚SUPERSET WITH MULTIPLICATION SIGN BELOW -
โซƒSUBSET OF OR EQUAL TO WITH DOT ABOVE -
โซ„SUPERSET OF OR EQUAL TO WITH DOT ABOVE -
โซ…⫅ ⫅SUBSET OF ABOVE EQUALS SIGN -
โซ†⫆ ⫆SUPERSET OF ABOVE EQUALS SIGN -
โซ‡SUBSET OF ABOVE TILDE OPERATOR -
โซˆSUPERSET OF ABOVE TILDE OPERATOR -
โซ‹⫋ ⫋SUBSET OF ABOVE NOT EQUAL TO -
โซŒ⫌ ⫌SUPERSET OF ABOVE NOT EQUAL TO -
โซCLOSED SUBSET -
โซCLOSED SUPERSET -
โซ‘CLOSED SUBSET OR EQUAL TO -
โซ’CLOSED SUPERSET OR EQUAL TO -
โซ“SUBSET ABOVE SUPERSET -
โซ”SUPERSET ABOVE SUBSET -
โซ•SUBSET ABOVE SUBSET -
โซ–SUPERSET ABOVE SUPERSET -
โซ—SUPERSET BESIDE SUBSET -
โซ˜SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET -
โซ™ELEMENT OF OPENING DOWNWARDS -
โซšPITCHFORK WITH TEE TOP -
โซ›TRANSVERSAL INTERSECTION -
โซค⫤ ⫤VERTICAL BAR DOUBLE LEFT TURNSTILE -
โซฆLONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL -
โซงSHORT DOWN TACK WITH OVERBAR -
โซจSHORT UP TACK WITH UNDERBAR -
โซฉSHORT UP TACK ABOVE SHORT DOWN TACK -
โซซDOUBLE UP TACK -
โซฌDOUBLE STROKE NOT SIGN -
โซญREVERSED DOUBLE STROKE NOT SIGN -
โซฎDOES NOT DIVIDE WITH REVERSED NEGATION SLASH -
โซฏVERTICAL LINE WITH CIRCLE ABOVE -
โซฐVERTICAL LINE WITH CIRCLE BELOW -
โซฑDOWN TACK WITH CIRCLE BELOW -
โซฒPARALLEL WITH HORIZONTAL STROKE -
โซณPARALLEL WITH TILDE OPERATOR -
โซฝDOUBLE SOLIDUS OPERATOR -
๏ฌ€LATIN SMALL LIGATURE FF -
๏ฌLATIN SMALL LIGATURE FI -
๏ฌ‚LATIN SMALL LIGATURE FL -
๏ฌƒLATIN SMALL LIGATURE FFI -
๏ฌ„LATIN SMALL LIGATURE FFL -
๐’œ𝒜𝒜𝒜MATHEMATICAL SCRIPT CAPITAL A -
๐’ž𝒞𝒞𝒞MATHEMATICAL SCRIPT CAPITAL C -
๐’Ÿ𝒟𝒟𝒟MATHEMATICAL SCRIPT CAPITAL D -
๐’ข𝒢𝒢𝒢MATHEMATICAL SCRIPT CAPITAL G -
๐’ฅ𝒥𝒥𝒥MATHEMATICAL SCRIPT CAPITAL J -
๐’ฆ𝒦𝒦𝒦MATHEMATICAL SCRIPT CAPITAL K -
๐’ฉ𝒩𝒩𝒩MATHEMATICAL SCRIPT CAPITAL N -
๐’ช𝒪𝒪𝒪MATHEMATICAL SCRIPT CAPITAL O -
๐’ซ𝒫𝒫𝒫MATHEMATICAL SCRIPT CAPITAL P -
๐’ฌ𝒬𝒬𝒬MATHEMATICAL SCRIPT CAPITAL Q -
๐’ฎ𝒮𝒮𝒮MATHEMATICAL SCRIPT CAPITAL S -
๐’ฏ𝒯𝒯𝒯MATHEMATICAL SCRIPT CAPITAL T -
๐’ฐ𝒰𝒰𝒰MATHEMATICAL SCRIPT CAPITAL U -
๐’ฑ𝒱𝒱𝒱MATHEMATICAL SCRIPT CAPITAL V -
๐’ฒ𝒲𝒲𝒲MATHEMATICAL SCRIPT CAPITAL W -
๐’ณ𝒳𝒳𝒳MATHEMATICAL SCRIPT CAPITAL X -
๐’ด𝒴𝒴𝒴MATHEMATICAL SCRIPT CAPITAL Y -
๐’ต𝒵𝒵𝒵MATHEMATICAL SCRIPT CAPITAL Z -
๐’ถ𝒶𝒶𝒶MATHEMATICAL SCRIPT SMALL A -
๐’ท𝒷𝒷𝒷MATHEMATICAL SCRIPT SMALL B -
๐’ธ𝒸𝒸𝒸MATHEMATICAL SCRIPT SMALL C -
๐’น𝒹𝒹𝒹MATHEMATICAL SCRIPT SMALL D -
๐’ป𝒻𝒻𝒻MATHEMATICAL SCRIPT SMALL F -
๐’ฝ𝒽𝒽𝒽MATHEMATICAL SCRIPT SMALL H -
๐’พ𝒾𝒾𝒾MATHEMATICAL SCRIPT SMALL I -
๐’ฟ𝒿𝒿𝒿MATHEMATICAL SCRIPT SMALL J -
๐“€𝓀𝓀𝓀MATHEMATICAL SCRIPT SMALL K -
๐“𝓁𝓁𝓁MATHEMATICAL SCRIPT SMALL L -
๐“‚𝓂𝓂𝓂MATHEMATICAL SCRIPT SMALL M -
๐“ƒ𝓃𝓃𝓃MATHEMATICAL SCRIPT SMALL N -
๐“…𝓅𝓅𝓅MATHEMATICAL SCRIPT SMALL P -
๐“†𝓆𝓆𝓆MATHEMATICAL SCRIPT SMALL Q -
๐“‡𝓇𝓇𝓇MATHEMATICAL SCRIPT SMALL R -
๐“ˆ𝓈𝓈𝓈MATHEMATICAL SCRIPT SMALL S -
๐“‰𝓉𝓉𝓉MATHEMATICAL SCRIPT SMALL T -
๐“Š𝓊𝓊𝓊MATHEMATICAL SCRIPT SMALL U -
๐“‹𝓋𝓋𝓋MATHEMATICAL SCRIPT SMALL V -
๐“Œ𝓌𝓌𝓌MATHEMATICAL SCRIPT SMALL W -
๐“𝓍𝓍𝓍MATHEMATICAL SCRIPT SMALL X -
๐“Ž𝓎𝓎𝓎MATHEMATICAL SCRIPT SMALL Y -
๐“𝓏𝓏𝓏MATHEMATICAL SCRIPT SMALL Z -
๐”„𝔄𝔄𝔄MATHEMATICAL FRAKTUR CAPITAL A -
๐”…𝔅𝔅𝔅MATHEMATICAL FRAKTUR CAPITAL B -
๐”‡𝔇𝔇𝔇MATHEMATICAL FRAKTUR CAPITAL D -
๐”ˆ𝔈𝔈𝔈MATHEMATICAL FRAKTUR CAPITAL E -
๐”‰𝔉𝔉𝔉MATHEMATICAL FRAKTUR CAPITAL F -
๐”Š𝔊𝔊𝔊MATHEMATICAL FRAKTUR CAPITAL G -
๐”𝔍𝔍𝔍MATHEMATICAL FRAKTUR CAPITAL J -
๐”Ž𝔎𝔎𝔎MATHEMATICAL FRAKTUR CAPITAL K -
๐”𝔏𝔏𝔏MATHEMATICAL FRAKTUR CAPITAL L -
๐”𝔐𝔐𝔐MATHEMATICAL FRAKTUR CAPITAL M -
๐”‘𝔑𝔑𝔑MATHEMATICAL FRAKTUR CAPITAL N -
๐”’𝔒𝔒𝔒MATHEMATICAL FRAKTUR CAPITAL O -
๐”“𝔓𝔓𝔓MATHEMATICAL FRAKTUR CAPITAL P -
๐””𝔔𝔔𝔔MATHEMATICAL FRAKTUR CAPITAL Q -
๐”–𝔖𝔖𝔖MATHEMATICAL FRAKTUR CAPITAL S -
๐”—𝔗𝔗𝔗MATHEMATICAL FRAKTUR CAPITAL T -
๐”˜𝔘𝔘𝔘MATHEMATICAL FRAKTUR CAPITAL U -
๐”™𝔙𝔙𝔙MATHEMATICAL FRAKTUR CAPITAL V -
๐”š𝔚𝔚𝔚MATHEMATICAL FRAKTUR CAPITAL W -
๐”›𝔛𝔛𝔛MATHEMATICAL FRAKTUR CAPITAL X -
๐”œ𝔜𝔜𝔜MATHEMATICAL FRAKTUR CAPITAL Y -
๐”ž𝔞𝔞𝔞MATHEMATICAL FRAKTUR SMALL A -
๐”Ÿ𝔟𝔟𝔟MATHEMATICAL FRAKTUR SMALL B -
๐” 𝔠𝔠𝔠MATHEMATICAL FRAKTUR SMALL C -
๐”ก𝔡𝔡𝔡MATHEMATICAL FRAKTUR SMALL D -
๐”ข𝔢𝔢𝔢MATHEMATICAL FRAKTUR SMALL E -
๐”ฃ𝔣𝔣𝔣MATHEMATICAL FRAKTUR SMALL F -
๐”ค𝔤𝔤𝔤MATHEMATICAL FRAKTUR SMALL G -
๐”ฅ𝔥𝔥𝔥MATHEMATICAL FRAKTUR SMALL H -
๐”ฆ𝔦𝔦𝔦MATHEMATICAL FRAKTUR SMALL I -
๐”ง𝔧𝔧𝔧MATHEMATICAL FRAKTUR SMALL J -
๐”จ𝔨𝔨𝔨MATHEMATICAL FRAKTUR SMALL K -
๐”ฉ𝔩𝔩𝔩MATHEMATICAL FRAKTUR SMALL L -
๐”ช𝔪𝔪𝔪MATHEMATICAL FRAKTUR SMALL M -
๐”ซ𝔫𝔫𝔫MATHEMATICAL FRAKTUR SMALL N -
๐”ฌ𝔬𝔬𝔬MATHEMATICAL FRAKTUR SMALL O -
๐”ญ𝔭𝔭𝔭MATHEMATICAL FRAKTUR SMALL P -
๐”ฎ𝔮𝔮𝔮MATHEMATICAL FRAKTUR SMALL Q -
๐”ฏ𝔯𝔯𝔯MATHEMATICAL FRAKTUR SMALL R -
๐”ฐ𝔰𝔰𝔰MATHEMATICAL FRAKTUR SMALL S -
๐”ฑ𝔱𝔱𝔱MATHEMATICAL FRAKTUR SMALL T -
๐”ฒ𝔲𝔲𝔲MATHEMATICAL FRAKTUR SMALL U -
๐”ณ𝔳𝔳𝔳MATHEMATICAL FRAKTUR SMALL V -
๐”ด𝔴𝔴𝔴MATHEMATICAL FRAKTUR SMALL W -
๐”ต𝔵𝔵𝔵MATHEMATICAL FRAKTUR SMALL X -
๐”ถ𝔶𝔶𝔶MATHEMATICAL FRAKTUR SMALL Y -
๐”ท𝔷𝔷𝔷MATHEMATICAL FRAKTUR SMALL Z -
๐”ธ𝔸𝔸𝔸MATHEMATICAL DOUBLE-STRUCK CAPITAL A -
๐”น𝔹𝔹𝔹MATHEMATICAL DOUBLE-STRUCK CAPITAL B -
๐”ป𝔻𝔻𝔻MATHEMATICAL DOUBLE-STRUCK CAPITAL D -
๐”ผ𝔼𝔼𝔼MATHEMATICAL DOUBLE-STRUCK CAPITAL E -
๐”ฝ𝔽𝔽𝔽MATHEMATICAL DOUBLE-STRUCK CAPITAL F -
๐”พ𝔾𝔾𝔾MATHEMATICAL DOUBLE-STRUCK CAPITAL G -
๐•€𝕀𝕀𝕀MATHEMATICAL DOUBLE-STRUCK CAPITAL I -
๐•𝕁𝕁𝕁MATHEMATICAL DOUBLE-STRUCK CAPITAL J -
๐•‚𝕂𝕂𝕂MATHEMATICAL DOUBLE-STRUCK CAPITAL K -
๐•ƒ𝕃𝕃𝕃MATHEMATICAL DOUBLE-STRUCK CAPITAL L -
๐•„𝕄𝕄𝕄MATHEMATICAL DOUBLE-STRUCK CAPITAL M -
๐•†𝕆𝕆𝕆MATHEMATICAL DOUBLE-STRUCK CAPITAL O -
๐•Š𝕊𝕊𝕊MATHEMATICAL DOUBLE-STRUCK CAPITAL S -
๐•‹𝕋𝕋𝕋MATHEMATICAL DOUBLE-STRUCK CAPITAL T -
๐•Œ𝕌𝕌𝕌MATHEMATICAL DOUBLE-STRUCK CAPITAL U -
๐•𝕍𝕍𝕍MATHEMATICAL DOUBLE-STRUCK CAPITAL V -
๐•Ž𝕎𝕎𝕎MATHEMATICAL DOUBLE-STRUCK CAPITAL W -
๐•𝕏𝕏𝕏MATHEMATICAL DOUBLE-STRUCK CAPITAL X -
๐•𝕐𝕐𝕐MATHEMATICAL DOUBLE-STRUCK CAPITAL Y -
๐•’𝕒𝕒𝕒MATHEMATICAL DOUBLE-STRUCK SMALL A -
๐•“𝕓𝕓𝕓MATHEMATICAL DOUBLE-STRUCK SMALL B -
๐•”𝕔𝕔𝕔MATHEMATICAL DOUBLE-STRUCK SMALL C -
๐••𝕕𝕕𝕕MATHEMATICAL DOUBLE-STRUCK SMALL D -
๐•–𝕖𝕖𝕖MATHEMATICAL DOUBLE-STRUCK SMALL E -
๐•—𝕗𝕗𝕗MATHEMATICAL DOUBLE-STRUCK SMALL F -
๐•˜𝕘𝕘𝕘MATHEMATICAL DOUBLE-STRUCK SMALL G -
๐•™𝕙𝕙𝕙MATHEMATICAL DOUBLE-STRUCK SMALL H -
๐•š𝕚𝕚𝕚MATHEMATICAL DOUBLE-STRUCK SMALL I -
๐•›𝕛𝕛𝕛MATHEMATICAL DOUBLE-STRUCK SMALL J -
๐•œ𝕜𝕜𝕜MATHEMATICAL DOUBLE-STRUCK SMALL K -
๐•𝕝𝕝𝕝MATHEMATICAL DOUBLE-STRUCK SMALL L -
๐•ž𝕞𝕞𝕞MATHEMATICAL DOUBLE-STRUCK SMALL M -
๐•Ÿ𝕟𝕟𝕟MATHEMATICAL DOUBLE-STRUCK SMALL N -
๐• 𝕠𝕠𝕠MATHEMATICAL DOUBLE-STRUCK SMALL O -
๐•ก𝕡𝕡𝕡MATHEMATICAL DOUBLE-STRUCK SMALL P -
๐•ข𝕢𝕢𝕢MATHEMATICAL DOUBLE-STRUCK SMALL Q -
๐•ฃ𝕣𝕣𝕣MATHEMATICAL DOUBLE-STRUCK SMALL R -
๐•ค𝕤𝕤𝕤MATHEMATICAL DOUBLE-STRUCK SMALL S -
๐•ฅ𝕥𝕥𝕥MATHEMATICAL DOUBLE-STRUCK SMALL T -
๐•ฆ𝕦𝕦𝕦MATHEMATICAL DOUBLE-STRUCK SMALL U -
๐•ง𝕧𝕧𝕧MATHEMATICAL DOUBLE-STRUCK SMALL V -
๐•จ𝕨𝕨𝕨MATHEMATICAL DOUBLE-STRUCK SMALL W -
๐•ฉ𝕩𝕩𝕩MATHEMATICAL DOUBLE-STRUCK SMALL X -
๐•ช𝕪𝕪𝕪MATHEMATICAL DOUBLE-STRUCK SMALL Y -
๐•ซ𝕫𝕫𝕫MATHEMATICAL DOUBLE-STRUCK SMALL Z -
-"""