I've seen the post from here Prove that the family of open sets in $\mathbb{R}$ has cardinality equal to $2^{\aleph_0}$
This post is somewhat complex for me, and I turned it to the question as my question suggested.
My attempt:
By Schröder–Bernstein theorem, it sufficient to find two injective functions $f:\mathcal{O}\to\mathbb{R}$ and $g:\mathbb{R}\to\mathcal{O}$ to complete the proof.
The open set in $\mathbb{R}$ is uniquely determined by its endpoint $(a,b)$, where $a<b$ and $a,b\in\mathbb{R}$. Each real numbers $a,b\in\mathbb{R}$ can split into integer part $a_1$ and decimal part $0.a_2a_3a_4\ldots$ such that
$$ a=a_1.a_2a_3a_4\ldots\\ b=b_1.b_2b_3b_4\ldots $$
Define
\begin{align} &f:\mathcal{O}\to\mathbb{R}\\ &(a,b)\to a_1b_1.b_2a_2a_3b_3b_4a_4\dots \end{align}
$a,b\in\mathbb{R}$ must differ in at least one digit and the "function routine" is fixed, hence it must be injective.
Define \begin{align} g:&\mathbb{R}\to \mathcal{O}\\ &x\to (x,x+1) \end{align}
This easily can seen as injective, hence $\mathcal{O}\sim\mathbb{R}$
Please leave some comments to tell me if this proof either correct or not