WHITE HEART SUIT vs BLACK HEART SUIT
Embed This Widget
Add the script tag and a data attribute to embed this widget.
Embed via iframe for maximum compatibility.
<iframe src="https://unicodefyi.com/iframe/entity//" width="420" height="400" frameborder="0" style="border:0;border-radius:10px;max-width:100%" loading="lazy"></iframe>
Paste this URL in WordPress, Medium, or any oEmbed-compatible platform.
https://unicodefyi.com/entity//
Add a dynamic SVG badge to your README or docs.
[](https://unicodefyi.com/entity//)
Use the native HTML custom element.
copied1 = false, 2000)"
:class="copied1 ? 'border-green-400 bg-green-50 dark:bg-green-950' : ''">
♡
WHITE HEART SUIT
U+2661
View details →
copied2 = false, 2000)"
:class="copied2 ? 'border-green-400 bg-green-50 dark:bg-green-950' : ''">
♥
BLACK HEART SUIT
U+2665
View details →
VS
Property Comparison
| Property | ♡ U+2661 | ♥ U+2665 |
|---|---|---|
| Name | WHITE HEART SUIT | BLACK HEART SUIT |
| Block | Miscellaneous Symbols | Miscellaneous Symbols |
| Script | Zyyy | Zyyy |
| Category | Other Symbol (So) | Other Symbol (So) |
| Bidirectional | ON | ON |
Encoding Comparison
| Format | U+2661 | U+2665 |
|---|---|---|
| unicode | U+2661 | U+2665 |
| decimal | 9825 | 9829 |
| htmldecimal | ♡ | ♥ |
| htmlhex | ♡ | ♥ |
| css | \2661 | \2665 |
| javascript | \u{2661} | \u{2665} |
| python | \u2661 | \u2665 |
| java | \u2661 | \u2665 |
| go | \u2661 | \u2665 |
| ruby | \u{2661} | \u{2665} |
| rust | \u{2661} | \u{2665} |
| ccpp | \u2661 | \u2665 |
| urlencoded | %E2%99%A1 | %E2%99%A5 |
| utf8bytes | e2 99 a1 | e2 99 a5 |
| utf16bebytes | 26 61 | 26 65 |
| utf32bebytes | 00 00 26 61 | 00 00 26 65 |
How to Distinguish
Both WHITE HEART SUIT and BLACK HEART SUIT belong to the Miscellaneous Symbols block and Zyyy script. Compare their codepoints and visual rendering to distinguish them.
Tip: Paste the character into a hex editor or use
charCodeAt()
in JavaScript to check the actual codepoint.