htmlentities () vs. htmlspecialchars ()


543

Apa perbedaan antara htmlspecialchars()dan htmlentities(). Kapan saya harus menggunakan yang satu atau yang lain?

Jawaban:


343

Dari dokumentasi PHP untuk htmlentities :

Fungsi ini identik dengan htmlspecialchars()semua cara, kecuali dengan htmlentities(), semua karakter yang memiliki persamaan karakter karakter HTML diterjemahkan ke dalam entitas ini.

Dari dokumentasi PHP untuk htmlspecialchars :

Karakter tertentu memiliki arti khusus dalam HTML, dan harus diwakili oleh entitas HTML jika mereka ingin mempertahankan maknanya. Fungsi ini mengembalikan string dengan beberapa konversi ini dibuat; terjemahan yang dibuat adalah yang paling berguna untuk pemrograman web sehari-hari. Jika Anda meminta semua entitas karakter HTML diterjemahkan, gunakan htmlentities()saja.

Perbedaannya adalah apa yang dikodekan. Pilihannya adalah segalanya (entitas) atau karakter "khusus", seperti ampersand, tanda kutip ganda dan tunggal, kurang dari, dan lebih besar dari (specialchars).

Saya lebih suka menggunakan htmlspecialcharskapanpun memungkinkan.

Sebagai contoh:

    echo htmlentities('<Il était une fois un être>.');
    // Output: &lt;Il &eacute;tait une fois un &ecirc;tre&gt;.
    //                ^^^^^^^^                 ^^^^^^^

    echo htmlspecialchars('<Il était une fois un être>.');
    // Output: &lt;Il était une fois un être&gt;.
    //                ^                 ^

31
Terima kasih atas jawabannya, tetapi apakah Anda keberatan untuk menguraikan apa yang Anda sukai htmlspecialchars()jika memungkinkan, selain perbedaan yang jelas? Situasi apa yang akan Anda gunakan htmlentities()menyebabkan masalah padahal htmlspecialchars()tidak?
MikeSchinkel

17
Baru saja mengalami masalah karena menggunakan htmlentities daripada htmlspecialchars! Jika situs Anda disandikan UTF8, simbol-simbol khusus seperti ¡™ £ ¢ ∞§¶ bisa berubah menjadi berlian hitam kecil dengan tanda tanya di dalamnya karena htmlentities tidak tahu bagaimana menanganinya, tetapi htmlspecialchars tidak.
Darius

32
@Darius Apa yang Anda katakan tidak masuk akal. htmlentitiesdan htmlspecialcharskeduanya dapat menangani UTF-8 selama Anda tentukan "UTF-8"untuk argumen ketiga.
Artefacto

14
Pada PHP 5.4, UTF-8 adalah opsi penyandian default (argumen ketiga).
Jonathan

7
@Darius: Kami menemukan sesuatu yang serupa. Seperti kami, Anda mungkin menggunakan PHP yang lebih lama dari 5.4.0. Jadi, disimpulkan dari komentar Jonathan, kita perlu secara eksplisit menentukan UTF-8 seperti ini: htmlentities ($ str, ENT_QUOTES, 'UTF-8');
rinogo

378

htmlspecialchars dapat digunakan:

  1. Ketika tidak perlu untuk menyandikan semua karakter yang memiliki padanan HTML-nya.

    Jika Anda tahu bahwa penyandian halaman cocok dengan simbol teks khusus, mengapa Anda menggunakan htmlentities? htmlspecialcharsjauh lebih mudah, dan menghasilkan lebih sedikit kode untuk dikirim ke klien.

    Sebagai contoh:

    echo htmlentities('<Il était une fois un être>.');
    // Output: &lt;Il &eacute;tait une fois un &ecirc;tre&gt;.
    //                ^^^^^^^^                 ^^^^^^^
    
    echo htmlspecialchars('<Il était une fois un être>.');
    // Output: &lt;Il était une fois un être&gt;.
    //                ^                 ^
    

    Yang kedua lebih pendek, dan tidak menyebabkan masalah jika ISO-8859-1 charset diatur.

  2. Ketika data akan diproses tidak hanya melalui browser (untuk menghindari penguraian kode HTML dari entitas),

  3. Jika hasilnya adalah XML (lihat jawabannya oleh Artefacto ).


4
htmlspecialchars ($ str, ENT_QUOTES, "UTF-8") adalah yang terbaik jika Anda menggunakan versi PHP lebih awal dari 5.4. ENT_QUOTES adalah suatu keharusan untuk menyandikan tanda kutip tunggal.
Tarik

97

Ini sedang dikodekan dengan htmlentities.

implode( "\t", array_values( get_html_translation_table( HTML_ENTITIES ) ) ):

"& <>
¡¢ £ ¤ ¥ ¦ § ¨ © ª «¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º» ¼ ½ ¾ ¿À À Å Å Å Ç Ç É É Î Ï Ñ Ò Ó Ó Ó Ó Ó × Õ Ö × Ø Ù Ú Û Ü Ü Ü ß ß à á â ã ä å æ ç è è é ê ë ê í í ï ï ó ó ó ó ö ö ü ü ü Š Š Š ˆ ˜ Α Β Δ Ε Ε Ζ Η Θ Ι Κ Κ Μ Ν Ξ Ξ Π Υ Υ Φ Φ Χ Ψ α α ε ε ε η η η η ι ι ι μ ξ ξ τ τ τ τ ω ϑ ϒ ϖ ‌ ‍ - - '' ‚“ ”„ † ‡ •… ‰ ′ ″ ‹› ‾ ⁄ € ℑ ℘ ℜ ℜ ℵ ℵ ℵ ↓ → ↓ ↔ ↵ ⇐ ⇑ ⇒ ⇒ ⇓ ⇓ ⇔ ∅ ∇ ∇ ∈ ∈ ∈ ∈ ∈ ∈ ∉ ∋ ∏ ∑ - ∗ √ ∝ ∞ ∠ ∧ ∨∩ ∪ ∫ ∴ ∼ ≅ ≈ ≠ ≡ ≤ ≥ ≥ ⊃ ⊄ ⊆ ⊆ ⊇ ⊕ ⊗ ⊗ ⊥ ⌉ ⌉ ⌉ ⌊ ⌊ ⌋ ⟨⟨⟩⟩ ♠ ♠ ♣ ♥ ♦

Ini sedang dikodekan dengan htmlspecialchars.

implode( "\t", array_values( get_html_translation_table( HTML_SPECIALCHARS ) ) ):

"& <>


3
Waspadalah! Sepintas, htmlentities terlihat cukup lengkap. Tapi itu kehilangan banyak karakter yang sangat mendasar dan umum (terutama jika klien Anda suka MS). Kutipan pintar (misalnya, 'atau & rsquo;), tanda hubung (misalnya, - atau & mdash), tanda merek dagang (™ atau & trade;), dan banyak lainnya akan menyebabkannya kembali nol.
Jonathan Lidbeck

9
@ Jonathan, mereka ada dalam daftar. Jika Anda mendapatkan hasil kosong, maka Anda mungkin menentukan pengkodean salah.
Artefacto

4
Atau Anda tidak menentukan pengkodean, dan mengandalkan default, yang berubah dalam PHP 5.4, dan kemudian (mungkin) lagi di PHP 5.6, tergantung pada konfigurasi Anda. Hingga 2012, dokumentasi bahkan tidak merekomendasikan Anda menentukan parameter. Jadi, jika Anda tidak menentukan parameter ketiga opsional , dan memutakhirkan PHP, htmlentities menggunakan ISO-8859-1 terlebih dahulu, maka ia menggunakan UTF-8, lalu menggunakan apa pun yang ada di php.ini Anda, tidak menimbulkan kesalahan pada masalah apa pun, tapi diam-diam tidak mengembalikan apa-apa. Jelas ini tidak pernah mungkin menyebabkan hilangnya data di beberapa titik!
Aaa

96

Karena:

  • Terkadang Anda menulis data XML, dan Anda tidak bisa menggunakan entitas HTML dalam file XML.
  • Karena htmlentitiesmenggantikan lebih banyak karakter daripada htmlspecialchars. Ini tidak perlu, membuat skrip PHP kurang efisien dan kode HTML yang dihasilkan kurang mudah dibaca.

htmlentities hanya diperlukan jika halaman Anda menggunakan penyandian seperti ASCII atau LATIN-1, bukan UTF-8 dan Anda sedang menangani data dengan penyandian yang berbeda dari halaman.


19

Anda harus menggunakan htmlspecialchars($strText, ENT_QUOTES)ketika Anda hanya ingin string Anda menjadi XML dan HTML aman:

Misalnya, menyandikan

  • & ke & amp;
  • "to & quot;
  • <to & lt;
  • > ke & gt;
  • 'ke & # 039;

Namun, jika Anda juga memiliki karakter tambahan yang Unicode atau simbol yang tidak umum dalam teks Anda maka Anda harus menggunakan htmlentities () untuk memastikan mereka muncul dengan benar di halaman HTML Anda.

Catatan:

  • 'hanya akan disandikan oleh htmlspecialchars () ke & # 039; jika opsi ENT_QUOTES diteruskan. & # 039; lebih aman untuk digunakan & apos; karena versi Internet Explorer yang lebih lama tidak mendukung & apos; kesatuan.
  • Secara teknis,> tidak perlu dikodekan sesuai spesifikasi XML, tetapi biasanya dikodekan juga untuk konsistensi dengan persyaratan <yang dikodekan.

2
pertanyaannya adalah: karena teks saya disediakan oleh pengguna, saya tidak tahu apakah saya memiliki simbol unicode atau tidak umum di sana. mengapa saya harus menggunakan htmlspecialchars dalam kasus ini?
EKanadily

14

htmlspecialchars ()melakukan jumlah minimum pengkodean untuk memastikan bahwa string Anda tidak diuraikan sebagai HTML. Ini membuat string Anda lebih terbaca oleh manusia daripada jika Anda biasa htmlentities ()mengenkode semua yang memiliki encoding.


14

Saya baru tahu tentang get_html_translation_tablefungsinya. Anda meneruskannya HTML_ENTITIESatau HTML_SPECIALCHARSmengembalikan array dengan karakter yang akan dikodekan dan bagaimana mereka akan dikodekan.


4
Ini berguna ketika Anda ingin membuat fungsi Anda sendiri, misalnya untuk mengganti beberapa karakter tambahan atau melakukan hal-hal ajaib lainnya.
Jochem Kuijpers

9

htmlentities - Konversi semua karakter yang berlaku ke entitas HTML.

htmlspecialchars - Konversi karakter khusus ke entitas HTML.

Terjemahan dilakukan karakter terjemahan di bawah ini:

  • '&' (ampersand) menjadi '& amp;'
  • '"' (penawaran ganda) menjadi '& quot;' ketika ENT_NOQUOTES tidak disetel.
  • "'" (kutipan tunggal) menjadi' & # 039; ' (atau ') hanya ketika ENT_QUOTES diatur.
  • '<' (kurang dari) menjadi '& lt;'
  • '>' (lebih besar dari) menjadi '& gt;'

Anda dapat memeriksa kode berikut untuk informasi lebih lanjut tentang apa itu htmlentities dan htmlspecialchars:

https://gist.github.com/joko-wandiro/f5c935708d9c37d8940b


7

Anda mungkin ingin menggunakan beberapa pengkodean karakter Unicode, misalnya UTF-8 , dan htmlspecialchars. Karena tidak ada setiap kebutuhan untuk menghasilkan "entitas HTML" untuk "semua [yang] karakter yang berlaku" (yang adalah apa yang htmlentities tidak sesuai dengan dokumentasi) jika sudah di set karakter Anda.


3

Salah satu contoh kecil, saya perlu memiliki 2 nama klien yang diindeks dalam suatu fungsi:

[1] => Altisoxxce Soluxxons S r.l.
[5] => Joxxson & Joxxson

Saya awalnya $term = get_term_by('name', htmlentities($name), 'client');yang menghasilkan nama-nama istilah yang hanya termasuk item array ampersand (&) tetapi tidak item beraksen. Tetapi ketika saya mengubah pengaturan variabel untuk htmlspecialcharskeduanya dapat menjalankan melalui fungsi. Semoga ini membantu!


3

Perbedaan antara htmlspecialchars () dan htmlentities () sangat kecil. Mari kita lihat beberapa contoh:

htmlspecialchars

htmlspecialchars (string $ string) mengambil beberapa argumen di mana argumen pertama adalah string dan semua argumen lainnya (flag tertentu, penyandian tertentu, dll.) adalah opsional. htmlspecialchars mengonversi karakter khusus dalam string ke entitas HTML. Sebagai contoh jika Anda memiliki <br> dalam string Anda, htmlspecialchars akan mengubahnya menjadi & lt; b & gt; . Sedangkan karakter seperti µ † dll. Tidak memiliki arti khusus dalam HTML. Jadi mereka tidak akan dikonversi ke entitas HTML dengan fungsi htmlspecialchars seperti yang ditunjukkan pada contoh di bawah ini.

echo htmlspecialchars('An example <br>'); // This will print - An example &lt; br &gt;
echo htmlspecialchars('µ †');             // This will print -  µ †

htmlentities

htmlentities (string $ string) sangat mirip dengan htmlspecialchars dan mengambil banyak argumen di mana argumen pertama adalah string dan semua argumen lainnya adalah opsional (flag tertentu, pengkodean tertentu, dll.). Tidak seperti htmlspecialchars , htmlentities tidak hanya mengkonversi karakter khusus dalam string ke entitas HTML tetapi semua karakter yang berlaku untuk entitas HTML.

echo htmlentities('An example <br>'); // This will print - An example &lt; br &gt;
echo htmlentities('µ †');             // This will print -  &micro; &dagger; 

2
**HTML Character Entity Reference Chart at W3.org**

https://dev.w3.org/html5/html-author/charref

&Tab;
&NewLine;
!
&excl;
"
&quot; &QUOT;
#
&num;
$
&dollar;
%
&percnt;
&
&amp; &AMP;
'
&apos;
(
&lpar;
)
&rpar;
*
&ast; &midast;
+
&plus;
,
&comma;
.
&period;
/
&sol;
:
&colon;
;
&semi;
<
&lt; &LT;
=
&equals;
>
&gt; &GT;
?
&quest;
@
&commat;
[
&lsqb; &lbrack;
\
&bsol;
]
&rsqb; &rbrack;
^
&Hat;
_
&lowbar;
`
&grave; &DiacriticalGrave;
{
&lcub; &lbrace;
|
&verbar; &vert; &VerticalLine;
}
&rcub; &rbrace;

&nbsp; &NonBreakingSpace;
¡
&iexcl;
¢
&cent;
£
&pound;
¤
&curren;
¥
&yen;
¦
&brvbar;
§
&sect;
¨
&Dot; &die; &DoubleDot; &uml;
©
&copy; &COPY;
ª
&ordf;
«
&laquo;
¬
&not;
&shy;
®
&reg; &circledR; &REG;
¯
&macr; &OverBar; &strns;
°
&deg;
±
&plusmn; &pm; &PlusMinus;
²
&sup2;
³
&sup3;
´
&acute; &DiacriticalAcute;
µ
&micro;
¶
&para;
·
&middot; &centerdot; &CenterDot;
¸
&cedil; &Cedilla;
¹
&sup1;
º
&ordm;
»
&raquo;
¼
&frac14;
½
&frac12; &half;
¾
&frac34;
¿
&iquest;
À
&Agrave;
Á
&Aacute;
Â
&Acirc;
Ã
&Atilde;
Ä
&Auml;
Å
&Aring;
Æ
&AElig;
Ç
&Ccedil;
È
&Egrave;
É
&Eacute;
Ê
&Ecirc;
Ë
&Euml;
Ì
&Igrave;
Í
&Iacute;
Î
&Icirc;
Ï
&Iuml;
Ð
&ETH;
Ñ
&Ntilde;
Ò
&Ograve;
Ó
&Oacute;
Ô
&Ocirc;
Õ
&Otilde;
Ö
&Ouml;
×
&times;
Ø
&Oslash;
Ù
&Ugrave;
Ú
&Uacute;
Û
&Ucirc;
Ü
&Uuml;
Ý
&Yacute;
Þ
&THORN;
ß
&szlig;
à
&agrave;
á
&aacute;
â
&acirc;
ã
&atilde;
ä
&auml;
å
&aring;
æ
&aelig;
ç
&ccedil;
è
&egrave;
é
&eacute;
ê
&ecirc;
ë
&euml;
ì
&igrave;
í
&iacute;
î
&icirc;
ï
&iuml;
ð
&eth;
ñ
&ntilde;
ò
&ograve;
ó
&oacute;
ô
&ocirc;
õ
&otilde;
ö
&ouml;
÷
&divide; &div;
ø
&oslash;
ù
&ugrave;
ú
&uacute;
û
&ucirc;
ü
&uuml;
ý
&yacute;
þ
&thorn;
ÿ
&yuml;
Ā
&Amacr;
ā
&amacr;
Ă
&Abreve;
ă
&abreve;
Ą
&Aogon;
ą
&aogon;
Ć
&Cacute;
ć
&cacute;
Ĉ
&Ccirc;
ĉ
&ccirc;
Ċ
&Cdot;
ċ
&cdot;
Č
&Ccaron;
č
&ccaron;
Ď
&Dcaron;
ď
&dcaron;
Đ
&Dstrok;
đ
&dstrok;
Ē
&Emacr;
ē
&emacr;
Ė
&Edot;
ė
&edot;
Ę
&Eogon;
ę
&eogon;
Ě
&Ecaron;
ě
&ecaron;
Ĝ
&Gcirc;
ĝ
&gcirc;
Ğ
&Gbreve;
ğ
&gbreve;
Ġ
&Gdot;
ġ
&gdot;
Ģ
&Gcedil;
Ĥ
&Hcirc;
ĥ
&hcirc;
Ħ
&Hstrok;
ħ
&hstrok;
Ĩ
&Itilde;
ĩ
&itilde;
Ī
&Imacr;
ī
&imacr;
Į
&Iogon;
į
&iogon;
İ
&Idot;
ı
&imath; &inodot;
IJ
&IJlig;
ij
&ijlig;
Ĵ
&Jcirc;
ĵ
&jcirc;
Ķ
&Kcedil;
ķ
&kcedil;
ĸ
&kgreen;
Ĺ
&Lacute;
ĺ
&lacute;
Ļ
&Lcedil;
ļ
&lcedil;
Ľ
&Lcaron;
ľ
&lcaron;
Ŀ
&Lmidot;
ŀ
&lmidot;
Ł
&Lstrok;
ł
&lstrok;
Ń
&Nacute;
ń
&nacute;
Ņ
&Ncedil;
ņ
&ncedil;
Ň
&Ncaron;
ň
&ncaron;
ʼn
&napos;
Ŋ
&ENG;
ŋ
&eng;
Ō
&Omacr;
ō
&omacr;
Ő
&Odblac;
ő
&odblac;
Œ
&OElig;
œ
&oelig;
Ŕ
&Racute;
ŕ
&racute;
Ŗ
&Rcedil;
ŗ
&rcedil;
Ř
&Rcaron;
ř
&rcaron;
Ś
&Sacute;
ś
&sacute;
Ŝ
&Scirc;
ŝ
&scirc;
Ş
&Scedil;
ş
&scedil;
Š
&Scaron;
š
&scaron;
Ţ
&Tcedil;
ţ
&tcedil;
Ť
&Tcaron;
ť
&tcaron;
Ŧ
&Tstrok;
ŧ
&tstrok;
Ũ
&Utilde;
ũ
&utilde;
Ū
&Umacr;
ū
&umacr;
Ŭ
&Ubreve;
ŭ
&ubreve;
Ů
&Uring;
ů
&uring;
Ű
&Udblac;
ű
&udblac;
Ų
&Uogon;
ų
&uogon;
Ŵ
&Wcirc;
ŵ
&wcirc;
Ŷ
&Ycirc;
ŷ
&ycirc;
Ÿ
&Yuml;
Ź
&Zacute;
ź
&zacute;
Ż
&Zdot;
ż
&zdot;
Ž
&Zcaron;
ž
&zcaron;
ƒ
&fnof;
Ƶ
&imped;
ǵ
&gacute;
ȷ
&jmath;
ˆ
&circ;
ˇ
&caron; &Hacek;
˘
&breve; &Breve;
˙
&dot; &DiacriticalDot;
˚
&ring;
˛
&ogon;
˜
&tilde; &DiacriticalTilde;
˝
&dblac; &DiacriticalDoubleAcute;
̑
&DownBreve;
̲
&UnderBar;
Α
&Alpha;
Β
&Beta;
Γ
&Gamma;
Δ
&Delta;
Ε
&Epsilon;
Ζ
&Zeta;
Η
&Eta;
Θ
&Theta;
Ι
&Iota;
Κ
&Kappa;
Λ
&Lambda;
Μ
&Mu;
Ν
&Nu;
Ξ
&Xi;
Ο
&Omicron;
Π
&Pi;
Ρ
&Rho;
Σ
&Sigma;
Τ
&Tau;
Υ
&Upsilon;
Φ
&Phi;
Χ
&Chi;
Ψ
&Psi;
Ω
&Omega;
α
&alpha;
β
&beta;
γ
&gamma;
δ
&delta;
ε
&epsiv; &varepsilon; &epsilon;
ζ
&zeta;
η
&eta;
θ
&theta;
ι
&iota;
κ
&kappa;
λ
&lambda;
μ
&mu;
ν
&nu;
ξ
&xi;
ο
&omicron;
π
&pi;
ρ
&rho;
ς
&sigmav; &varsigma; &sigmaf;
σ
&sigma;
τ
&tau;
υ
&upsi; &upsilon;
φ
&phi; &phiv; &varphi;
χ
&chi;
ψ
&psi;
ω
&omega;
ϑ
&thetav; &vartheta; &thetasym;
ϒ
&Upsi; &upsih;
ϕ
&straightphi;
ϖ
&piv; &varpi;
Ϝ
&Gammad;
ϝ
&gammad; &digamma;
ϰ
&kappav; &varkappa;
ϱ
&rhov; &varrho;
ϵ
&epsi; &straightepsilon;
϶
&bepsi; &backepsilon;
Ё
&IOcy;
Ђ
&DJcy;
Ѓ
&GJcy;
Є
&Jukcy;
Ѕ
&DScy;
І
&Iukcy;
Ї
&YIcy;
Ј
&Jsercy;
Љ
&LJcy;
Њ
&NJcy;
Ћ
&TSHcy;
Ќ
&KJcy;
Ў
&Ubrcy;
Џ
&DZcy;
А
&Acy;
Б
&Bcy;
В
&Vcy;
Г
&Gcy;
Д
&Dcy;
Е
&IEcy;
Ж
&ZHcy;
З
&Zcy;
И
&Icy;
Й
&Jcy;
К
&Kcy;
Л
&Lcy;
М
&Mcy;
Н
&Ncy;
О
&Ocy;
П
&Pcy;
Р
&Rcy;
С
&Scy;
Т
&Tcy;
У
&Ucy;
Ф
&Fcy;
Х
&KHcy;
Ц
&TScy;
Ч
&CHcy;
Ш
&SHcy;
Щ
&SHCHcy;
Ъ
&HARDcy;
Ы
&Ycy;
Ь
&SOFTcy;
Э
&Ecy;
Ю
&YUcy;
Я
&YAcy;
а
&acy;
б
&bcy;
в
&vcy;
г
&gcy;
д
&dcy;
е
&iecy;
ж
&zhcy;
з
&zcy;
и
&icy;
й
&jcy;
к
&kcy;
л
&lcy;
м
&mcy;
н
&ncy;
о
&ocy;
п
&pcy;
р
&rcy;
с
&scy;
т
&tcy;
у
&ucy;
ф
&fcy;
х
&khcy;
ц
&tscy;
ч
&chcy;
ш
&shcy;
щ
&shchcy;
ъ
&hardcy;
ы
&ycy;
ь
&softcy;
э
&ecy;
ю
&yucy;
я
&yacy;
ё
&iocy;
ђ
&djcy;
ѓ
&gjcy;
є
&jukcy;
ѕ
&dscy;
і
&iukcy;
ї
&yicy;
ј
&jsercy;
љ
&ljcy;
њ
&njcy;
ћ
&tshcy;
ќ
&kjcy;
ў
&ubrcy;
џ
&dzcy;
 
&ensp;
 
&emsp;
 
&emsp13;
 
&emsp14;
 
&numsp;
 
&puncsp;
 
&thinsp; &ThinSpace;
 
&hairsp; &VeryThinSpace;
​
&ZeroWidthSpace; &NegativeVeryThinSpace; &NegativeThinSpace; &NegativeMediumSpace; &NegativeThickSpace;
‌
&zwnj;
‍
&zwj;
‎
&lrm;
‏
&rlm;
‐
&hyphen; &dash;
–
&ndash;
—
&mdash;
―
&horbar;
‖
&Verbar; &Vert;
‘
&lsquo; &OpenCurlyQuote;
’
&rsquo; &rsquor; &CloseCurlyQuote;
‚
&lsquor; &sbquo;
“
&ldquo; &OpenCurlyDoubleQuote;
”
&rdquo; &rdquor; &CloseCurlyDoubleQuote;
„
&ldquor; &bdquo;
†
&dagger;
‡
&Dagger; &ddagger;
•
&bull; &bullet;
‥
&nldr;
…
&hellip; &mldr;
‰
&permil;
‱
&pertenk;
′
&prime;
″
&Prime;
‴
&tprime;
‵
&bprime; &backprime;
‹
&lsaquo;
›
&rsaquo;
‾
&oline;
⁁
&caret;
⁃
&hybull;
⁄
&frasl;
⁏
&bsemi;
⁗
&qprime;
 
&MediumSpace;
⁠
&NoBreak;
⁡
&ApplyFunction; &af;
⁢
&InvisibleTimes; &it;
⁣
&InvisibleComma; &ic;
€
&euro;
⃛
&tdot; &TripleDot;
⃜
&DotDot;
ℂ
&Copf; &complexes;
℅
&incare;
ℊ
&gscr;
ℋ
&hamilt; &HilbertSpace; &Hscr;
ℌ
&Hfr; &Poincareplane;
ℍ
&quaternions; &Hopf;
ℎ
&planckh;
ℏ
&planck; &hbar; &plankv; &hslash;
ℐ
&Iscr; &imagline;
ℑ
&image; &Im; &imagpart; &Ifr;
ℒ
&Lscr; &lagran; &Laplacetrf;
ℓ
&ell;
ℕ
&Nopf; &naturals;
№
&numero;
℗
&copysr;
℘
&weierp; &wp;
ℙ
&Popf; &primes;
ℚ
&rationals; &Qopf;
ℛ
&Rscr; &realine;
ℜ
&real; &Re; &realpart; &Rfr;
ℝ
&reals; &Ropf;
℞
&rx;
™
&trade; &TRADE;
ℤ
&integers; &Zopf;
Ω
&ohm;
℧
&mho;
ℨ
&Zfr; &zeetrf;
℩
&iiota;
Å
&angst;
ℬ
&bernou; &Bernoullis; &Bscr;
ℭ
&Cfr; &Cayleys;
ℯ
&escr;
ℰ
&Escr; &expectation;
ℱ
&Fscr; &Fouriertrf;
ℳ
&phmmat; &Mellintrf; &Mscr;
ℴ
&order; &orderof; &oscr;
ℵ
&alefsym; &aleph;
ℶ
&beth;
ℷ
&gimel;
ℸ
&daleth;
ⅅ
&CapitalDifferentialD; &DD;
ⅆ
&DifferentialD; &dd;
ⅇ
&ExponentialE; &exponentiale; &ee;
ⅈ
&ImaginaryI; &ii;
⅓
&frac13;
⅔
&frac23;
⅕
&frac15;
⅖
&frac25;
⅗
&frac35;
⅘
&frac45;
⅙
&frac16;
⅚
&frac56;
⅛
&frac18;
⅜
&frac38;
⅝
&frac58;
⅞
&frac78;
←
&larr; &leftarrow; &LeftArrow; &slarr; &ShortLeftArrow;
↑
&uarr; &uparrow; &UpArrow; &ShortUpArrow;
→
&rarr; &rightarrow; &RightArrow; &srarr; &ShortRightArrow;
↓
&darr; &downarrow; &DownArrow; &ShortDownArrow;
↔
&harr; &leftrightarrow; &LeftRightArrow;
↕
&varr; &updownarrow; &UpDownArrow;
↖
&nwarr; &UpperLeftArrow; &nwarrow;
↗
&nearr; &UpperRightArrow; &nearrow;
↘
&searr; &searrow; &LowerRightArrow;
↙
&swarr; &swarrow; &LowerLeftArrow;
↚
&nlarr; &nleftarrow;
↛
&nrarr; &nrightarrow;
↝
&rarrw; &rightsquigarrow;
↞
&Larr; &twoheadleftarrow;
↟
&Uarr;
↠
&Rarr; &twoheadrightarrow;
↡
&Darr;
↢
&larrtl; &leftarrowtail;
↣
&rarrtl; &rightarrowtail;
↤
&LeftTeeArrow; &mapstoleft;
↥
&UpTeeArrow; &mapstoup;
↦
&map; &RightTeeArrow; &mapsto;
↧
&DownTeeArrow; &mapstodown;
↩
&larrhk; &hookleftarrow;
↪
&rarrhk; &hookrightarrow;
↫
&larrlp; &looparrowleft;
↬
&rarrlp; &looparrowright;
↭
&harrw; &leftrightsquigarrow;
↮
&nharr; &nleftrightarrow;
↰
&lsh; &Lsh;
↱
&rsh; &Rsh;
↲
&ldsh;
↳
&rdsh;
↵
&crarr;
↶
&cularr; &curvearrowleft;
↷
&curarr; &curvearrowright;
↺
&olarr; &circlearrowleft;
↻
&orarr; &circlearrowright;
↼
&lharu; &LeftVector; &leftharpoonup;
↽
&lhard; &leftharpoondown; &DownLeftVector;
↾
&uharr; &upharpoonright; &RightUpVector;
↿
&uharl; &upharpoonleft; &LeftUpVector;
⇀
&rharu; &RightVector; &rightharpoonup;
⇁
&rhard; &rightharpoondown; &DownRightVector;
⇂
&dharr; &RightDownVector; &downharpoonright;
⇃
&dharl; &LeftDownVector; &downharpoonleft;
⇄
&rlarr; &rightleftarrows; &RightArrowLeftArrow;
⇅
&udarr; &UpArrowDownArrow;
⇆
&lrarr; &leftrightarrows; &LeftArrowRightArrow;
⇇
&llarr; &leftleftarrows;
⇈
&uuarr; &upuparrows;
⇉
&rrarr; &rightrightarrows;
⇊
&ddarr; &downdownarrows;
⇋
&lrhar; &ReverseEquilibrium; &leftrightharpoons;
⇌
&rlhar; &rightleftharpoons; &Equilibrium;
⇍
&nlArr; &nLeftarrow;
⇎
&nhArr; &nLeftrightarrow;
⇏
&nrArr; &nRightarrow;
⇐
&lArr; &Leftarrow; &DoubleLeftArrow;
⇑
&uArr; &Uparrow; &DoubleUpArrow;
⇒
&rArr; &Rightarrow; &Implies; &DoubleRightArrow;
⇓
&dArr; &Downarrow; &DoubleDownArrow;
⇔
&hArr; &Leftrightarrow; &DoubleLeftRightArrow; &iff;
⇕
&vArr; &Updownarrow; &DoubleUpDownArrow;
⇖
&nwArr;
⇗
&neArr;
⇘
&seArr;
⇙
&swArr;
⇚
&lAarr; &Lleftarrow;
⇛
&rAarr; &Rrightarrow;
⇝
&zigrarr;
⇤
&larrb; &LeftArrowBar;
⇥
&rarrb; &RightArrowBar;
⇵
&duarr; &DownArrowUpArrow;
⇽
&loarr;
⇾
&roarr;
⇿
&hoarr;
∀
&forall; &ForAll;
∁
&comp; &complement;
∂
&part; &PartialD;
∃
&exist; &Exists;
∄
&nexist; &NotExists; &nexists;
∅
&empty; &emptyset; &emptyv; &varnothing;
∇
&nabla; &Del;
∈
&isin; &isinv; &Element; &in;
∉
&notin; &NotElement; &notinva;
∋
&niv; &ReverseElement; &ni; &SuchThat;
∌
&notni; &notniva; &NotReverseElement;
∏
&prod; &Product;
∐
&coprod; &Coproduct;
∑
&sum; &Sum;
−
&minus;
∓
&mnplus; &mp; &MinusPlus;
∔
&plusdo; &dotplus;
∖
&setmn; &setminus; &Backslash; &ssetmn; &smallsetminus;
∗
&lowast;
∘
&compfn; &SmallCircle;
√
&radic; &Sqrt;
∝
&prop; &propto; &Proportional; &vprop; &varpropto;
∞
&infin;
∟
&angrt;
∠
&ang; &angle;
∡
&angmsd; &measuredangle;
∢
&angsph;
∣
&mid; &VerticalBar; &smid; &shortmid;
∤
&nmid; &NotVerticalBar; &nsmid; &nshortmid;
∥
&par; &parallel; &DoubleVerticalBar; &spar; &shortparallel;
∦
&npar; &nparallel; &NotDoubleVerticalBar; &nspar; &nshortparallel;
∧
&and; &wedge;
∨
&or; &vee;
∩
&cap;
∪
&cup;
∫
&int; &Integral;
∬
&Int;
∭
&tint; &iiint;
∮
&conint; &oint; &ContourIntegral;
∯
&Conint; &DoubleContourIntegral;
∰
&Cconint;
∱
&cwint;
∲
&cwconint; &ClockwiseContourIntegral;
∳
&awconint; &CounterClockwiseContourIntegral;
∴
&there4; &therefore; &Therefore;
∵
&becaus; &because; &Because;
∶
&ratio;
∷
&Colon; &Proportion;
∸
&minusd; &dotminus;
∺
&mDDot;
∻
&homtht;
∼
&sim; &Tilde; &thksim; &thicksim;
∽
&bsim; &backsim;
∾
&ac; &mstpos;
∿
&acd;
≀
&wreath; &VerticalTilde; &wr;
≁
&nsim; &NotTilde;
≂
&esim; &EqualTilde; &eqsim;
≃
&sime; &TildeEqual; &simeq;
≄
&nsime; &nsimeq; &NotTildeEqual;
≅
&cong; &TildeFullEqual;
≆
&simne;
≇
&ncong; &NotTildeFullEqual;
≈
&asymp; &ap; &TildeTilde; &approx; &thkap; &thickapprox;
≉
&nap; &NotTildeTilde; &napprox;
≊
&ape; &approxeq;
≋
&apid;
≌
&bcong; &backcong;
≍
&asympeq; &CupCap;
≎
&bump; &HumpDownHump; &Bumpeq;
≏
&bumpe; &HumpEqual; &bumpeq;
≐
&esdot; &DotEqual; &doteq;
≑
&eDot; &doteqdot;
≒
&efDot; &fallingdotseq;
≓
&erDot; &risingdotseq;
≔
&colone; &coloneq; &Assign;
≕
&ecolon; &eqcolon;
≖
&ecir; &eqcirc;
≗
&cire; &circeq;
≙
&wedgeq;
≚
&veeeq;
≜
&trie; &triangleq;
≟
&equest; &questeq;
≠
&ne; &NotEqual;
≡
&equiv; &Congruent;
≢
&nequiv; &NotCongruent;
≤
&le; &leq;
≥
&ge; &GreaterEqual; &geq;
≦
&lE; &LessFullEqual; &leqq;
≧
&gE; &GreaterFullEqual; &geqq;
≨
&lnE; &lneqq;
≩
&gnE; &gneqq;
≪
&Lt; &NestedLessLess; &ll;
≫
&Gt; &NestedGreaterGreater; &gg;
≬
&twixt; &between;
≭
&NotCupCap;
≮
&nlt; &NotLess; &nless;
≯
&ngt; &NotGreater; &ngtr;
≰
&nle; &NotLessEqual; &nleq;
≱
&nge; &NotGreaterEqual; &ngeq;
≲
&lsim; &LessTilde; &lesssim;
≳
&gsim; &gtrsim; &GreaterTilde;
≴
&nlsim; &NotLessTilde;
≵
&ngsim; &NotGreaterTilde;
≶
&lg; &lessgtr; &LessGreater;
≷
&gl; &gtrless; &GreaterLess;
≸
&ntlg; &NotLessGreater;
≹
&ntgl; &NotGreaterLess;
≺
&pr; &Precedes; &prec;
≻
&sc; &Succeeds; &succ;
≼
&prcue; &PrecedesSlantEqual; &preccurlyeq;
≽
&sccue; &SucceedsSlantEqual; &succcurlyeq;
≾
&prsim; &precsim; &PrecedesTilde;
≿
&scsim; &succsim; &SucceedsTilde;
⊀
&npr; &nprec; &NotPrecedes;
⊁
&nsc; &nsucc; &NotSucceeds;
⊂
&sub; &subset;
⊃
&sup; &supset; &Superset;
⊄
&nsub;
⊅
&nsup;
⊆
&sube; &SubsetEqual; &subseteq;
⊇
&supe; &supseteq; &SupersetEqual;
⊈
&nsube; &nsubseteq; &NotSubsetEqual;
⊉
&nsupe; &nsupseteq; &NotSupersetEqual;
⊊
&subne; &subsetneq;
⊋
&supne; &supsetneq;
⊍
&cupdot;
⊎
&uplus; &UnionPlus;
⊏
&sqsub; &SquareSubset; &sqsubset;
⊐
&sqsup; &SquareSuperset; &sqsupset;
⊑
&sqsube; &SquareSubsetEqual; &sqsubseteq;
⊒
&sqsupe; &SquareSupersetEqual; &sqsupseteq;
⊓
&sqcap; &SquareIntersection;
⊔
&sqcup; &SquareUnion;
⊕
&oplus; &CirclePlus;
⊖
&ominus; &CircleMinus;
⊗
&otimes; &CircleTimes;
⊘
&osol;
⊙
&odot; &CircleDot;
⊚
&ocir; &circledcirc;
⊛
&oast; &circledast;
⊝
&odash; &circleddash;
⊞
&plusb; &boxplus;
⊟
&minusb; &boxminus;
⊠
&timesb; &boxtimes;
⊡
&sdotb; &dotsquare;
⊢
&vdash; &RightTee;
⊣
&dashv; &LeftTee;
⊤
&top; &DownTee;
⊥
&bottom; &bot; &perp; &UpTee;
⊧
&models;
⊨
&vDash; &DoubleRightTee;
⊩
&Vdash;
⊪
&Vvdash;
⊫
&VDash;
⊬
&nvdash;
⊭
&nvDash;
⊮
&nVdash;
⊯
&nVDash;
⊰
&prurel;
⊲
&vltri; &vartriangleleft; &LeftTriangle;
⊳
&vrtri; &vartriangleright; &RightTriangle;
⊴
&ltrie; &trianglelefteq; &LeftTriangleEqual;
⊵
&rtrie; &trianglerighteq; &RightTriangleEqual;
⊶
&origof;
⊷
&imof;
⊸
&mumap; &multimap;
⊹
&hercon;
⊺
&intcal; &intercal;
⊻
&veebar;
⊽
&barvee;
⊾
&angrtvb;
⊿
&lrtri;
⋀
&xwedge; &Wedge; &bigwedge;
⋁
&xvee; &Vee; &bigvee;
⋂
&xcap; &Intersection; &bigcap;
⋃
&xcup; &Union; &bigcup;
⋄
&diam; &diamond; &Diamond;
⋅
&sdot;
⋆
&sstarf; &Star;
⋇
&divonx; &divideontimes;
⋈
&bowtie;
⋉
&ltimes;
⋊
&rtimes;
⋋
&lthree; &leftthreetimes;
⋌
&rthree; &rightthreetimes;
⋍
&bsime; &backsimeq;
⋎
&cuvee; &curlyvee;
⋏
&cuwed; &curlywedge;
⋐
&Sub; &Subset;
⋑
&Sup; &Supset;
⋒
&Cap;
⋓
&Cup;
⋔
&fork; &pitchfork;
⋕
&epar;
⋖
&ltdot; &lessdot;
⋗
&gtdot; &gtrdot;
⋘
&Ll;
⋙
&Gg; &ggg;
⋚
&leg; &LessEqualGreater; &lesseqgtr;
⋛
&gel; &gtreqless; &GreaterEqualLess;
⋞
&cuepr; &curlyeqprec;
⋟
&cuesc; &curlyeqsucc;
⋠
&nprcue; &NotPrecedesSlantEqual;
⋡
&nsccue; &NotSucceedsSlantEqual;
⋢
&nsqsube; &NotSquareSubsetEqual;
⋣
&nsqsupe; &NotSquareSupersetEqual;
⋦
&lnsim;
⋧
&gnsim;
⋨
&prnsim; &precnsim;
⋩
&scnsim; &succnsim;
⋪
&nltri; &ntriangleleft; &NotLeftTriangle;
⋫
&nrtri; &ntriangleright; &NotRightTriangle;
⋬
&nltrie; &ntrianglelefteq; &NotLeftTriangleEqual;
⋭
&nrtrie; &ntrianglerighteq; &NotRightTriangleEqual;
⋮
&vellip;
⋯
&ctdot;
⋰
&utdot;
⋱
&dtdot;
⋲
&disin;
⋳
&isinsv;
⋴
&isins;
⋵
&isindot;
⋶
&notinvc;
⋷
&notinvb;
⋹
&isinE;
⋺
&nisd;
⋻
&xnis;
⋼
&nis;
⋽
&notnivc;
⋾
&notnivb;
⌅
&barwed; &barwedge;
⌆
&Barwed; &doublebarwedge;
⌈
&lceil; &LeftCeiling;
⌉
&rceil; &RightCeiling;
⌊
&lfloor; &LeftFloor;
⌋
&rfloor; &RightFloor;
⌌
&drcrop;
⌍
&dlcrop;
⌎
&urcrop;
⌏
&ulcrop;
⌐
&bnot;
⌒
&profline;
⌓
&profsurf;
⌕
&telrec;
⌖
&target;
⌜
&ulcorn; &ulcorner;
⌝
&urcorn; &urcorner;
⌞
&dlcorn; &llcorner;
⌟
&drcorn; &lrcorner;
⌢
&frown; &sfrown;
⌣
&smile; &ssmile;
⌭
&cylcty;
⌮
&profalar;
⌶
&topbot;
⌽
&ovbar;
⌿
&solbar;
⍼
&angzarr;
⎰
&lmoust; &lmoustache;
⎱
&rmoust; &rmoustache;
⎴
&tbrk; &OverBracket;
⎵
&bbrk; &UnderBracket;
⎶
&bbrktbrk;
⏜
&OverParenthesis;
⏝
&UnderParenthesis;
⏞
&OverBrace;
⏟
&UnderBrace;
⏢
&trpezium;
⏧
&elinters;
␣
&blank;
Ⓢ
&oS; &circledS;
─
&boxh; &HorizontalLine;
│
&boxv;
┌
&boxdr;
┐
&boxdl;
└
&boxur;
┘
&boxul;
├
&boxvr;
┤
&boxvl;
┬
&boxhd;
┴
&boxhu;
┼
&boxvh;
═
&boxH;
║
&boxV;
╒
&boxdR;
╓
&boxDr;
╔
&boxDR;
╕
&boxdL;
╖
&boxDl;
╗
&boxDL;
╘
&boxuR;
╙
&boxUr;
╚
&boxUR;
╛
&boxuL;
╜
&boxUl;
╝
&boxUL;
╞
&boxvR;
╟
&boxVr;
╠
&boxVR;
╡
&boxvL;
╢
&boxVl;
╣
&boxVL;
╤
&boxHd;
╥
&boxhD;
╦
&boxHD;
╧
&boxHu;
╨
&boxhU;
╩
&boxHU;
╪
&boxvH;
╫
&boxVh;
╬
&boxVH;
▀
&uhblk;
▄
&lhblk;
█
&block;
░
&blk14;
▒
&blk12;
▓
&blk34;
□
&squ; &square; &Square;
▪
&squf; &squarf; &blacksquare; &FilledVerySmallSquare;
▫
&EmptyVerySmallSquare;
▭
&rect;
▮
&marker;
▱
&fltns;
△
&xutri; &bigtriangleup;
▴
&utrif; &blacktriangle;
▵
&utri; &triangle;
▸
&rtrif; &blacktriangleright;
▹
&rtri; &triangleright;
▽
&xdtri; &bigtriangledown;
▾
&dtrif; &blacktriangledown;
▿
&dtri; &triangledown;
◂
&ltrif; &blacktriangleleft;
◃
&ltri; &triangleleft;
◊
&loz; &lozenge;
○
&cir;
◬
&tridot;
◯
&xcirc; &bigcirc;
◸
&ultri;
◹
&urtri;
◺
&lltri;
◻
&EmptySmallSquare;
◼
&FilledSmallSquare;
★
&starf; &bigstar;
☆
&star;
☎
&phone;
♀
&female;
♂
&male;
♠
&spades; &spadesuit;
♣
&clubs; &clubsuit;
♥
&hearts; &heartsuit;
♦
&diams; &diamondsuit;
♪
&sung;
♭
&flat;
♮
&natur; &natural;
♯
&sharp;
✓
&check; &checkmark;
✗
&cross;
✠
&malt; &maltese;
✶
&sext;
❘
&VerticalSeparator;
❲
&lbbrk;
❳
&rbbrk;
⟦
&lobrk; &LeftDoubleBracket;
⟧
&robrk; &RightDoubleBracket;
⟨
&lang; &LeftAngleBracket; &langle;
⟩
&rang; &RightAngleBracket; &rangle;
⟪
&Lang;
⟫
&Rang;
⟬
&loang;
⟭
&roang;
⟵
&xlarr; &longleftarrow; &LongLeftArrow;
⟶
&xrarr; &longrightarrow; &LongRightArrow;
⟷
&xharr; &longleftrightarrow; &LongLeftRightArrow;
⟸
&xlArr; &Longleftarrow; &DoubleLongLeftArrow;
⟹
&xrArr; &Longrightarrow; &DoubleLongRightArrow;
⟺
&xhArr; &Longleftrightarrow; &DoubleLongLeftRightArrow;
⟼
&xmap; &longmapsto;
⟿
&dzigrarr;
⤂
&nvlArr;
⤃
&nvrArr;
⤄
&nvHarr;
⤅
&Map;
⤌
&lbarr;
⤍
&rbarr; &bkarow;
⤎
&lBarr;
⤏
&rBarr; &dbkarow;
⤐
&RBarr; &drbkarow;
⤑
&DDotrahd;
⤒
&UpArrowBar;
⤓
&DownArrowBar;
⤖
&Rarrtl;
⤙
&latail;
⤚
&ratail;
⤛
&lAtail;
⤜
&rAtail;
⤝
&larrfs;
⤞
&rarrfs;
⤟
&larrbfs;
⤠
&rarrbfs;
⤣
&nwarhk;
⤤
&nearhk;
⤥
&searhk; &hksearow;
⤦
&swarhk; &hkswarow;
⤧
&nwnear;
⤨
&nesear; &toea;
⤩
&seswar; &tosa;
⤪
&swnwar;
⤳
&rarrc;
⤵
&cudarrr;
⤶
&ldca;
⤷
&rdca;
⤸
&cudarrl;
⤹
&larrpl;
⤼
&curarrm;
⤽
&cularrp;
⥅
&rarrpl;
⥈
&harrcir;
⥉
&Uarrocir;
⥊
&lurdshar;
⥋
&ldrushar;
⥎
&LeftRightVector;
⥏
&RightUpDownVector;
⥐
&DownLeftRightVector;
⥑
&LeftUpDownVector;
⥒
&LeftVectorBar;
⥓
&RightVectorBar;
⥔
&RightUpVectorBar;
⥕
&RightDownVectorBar;
⥖
&DownLeftVectorBar;
⥗
&DownRightVectorBar;
⥘
&LeftUpVectorBar;
⥙
&LeftDownVectorBar;
⥚
&LeftTeeVector;
⥛
&RightTeeVector;
⥜
&RightUpTeeVector;
⥝
&RightDownTeeVector;
⥞
&DownLeftTeeVector;
⥟
&DownRightTeeVector;
⥠
&LeftUpTeeVector;
⥡
&LeftDownTeeVector;
⥢
&lHar;
⥣
&uHar;
⥤
&rHar;
⥥
&dHar;
⥦
&luruhar;
⥧
&ldrdhar;
⥨
&ruluhar;
⥩
&rdldhar;
⥪
&lharul;
⥫
&llhard;
⥬
&rharul;
⥭
&lrhard;
⥮
&udhar; &UpEquilibrium;
⥯
&duhar; &ReverseUpEquilibrium;
⥰
&RoundImplies;
⥱
&erarr;
⥲
&simrarr;
⥳
&larrsim;
⥴
&rarrsim;
⥵
&rarrap;
⥶
&ltlarr;
⥸
&gtrarr;
⥹
&subrarr;
⥻
&suplarr;
⥼
&lfisht;
⥽
&rfisht;
⥾
&ufisht;
⥿
&dfisht;
⦅
&lopar;
⦆
&ropar;
⦋
&lbrke;
⦌
&rbrke;
⦍
&lbrkslu;
⦎
&rbrksld;
⦏
&lbrksld;
⦐
&rbrkslu;
⦑
&langd;
⦒

Tidak sepenuhnya, silakan lacak tautan untuk mendokumentasikan sepenuhnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.