Since $\Bbb R$ and the interval $(0,1)$ have the same cardinality, and $\Bbb Q$ has the cardinality of $\Bbb N,$ it suffices to find an injective $f:(0,1)\to ^\Bbb N (0,1)$ and an injective $g:^\Bbb N (0,1)\to (0,1).$
(I). For $x\in (0,1)$ let $f(x)$ be the function $\{(n,x): n\in \Bbb N\}$.
(II). For $v\in ^\Bbb N (0,1)$, for each $n\in \Bbb N$ let $v(n)=\sum_{j=1}^{\infty}v(n,j)2^{-j}$ such that (i) $v(n,j)\in \{0,1\}$ and (ii) $v(n,j)=0$ for infinitely many $j.$ This assures the uniqueness of the sequence $(v(n,j))_{j\in \Bbb N}$ for each $n.$
Arrange the double-sequence $(v(n,j))_{n,j\in \Bbb N}$ into the following sequence $(A^v(k))_{k\in \Bbb N}$ of finite sequences:
$A^v(1)=(v(1,1)).$
$A^v(2)=(v(2,1),v(1,2)).$
$A^v(3)=(v(3,1),v(2,2),v(1,3)).$
$A^v(4)=(v(4,1),v(3,2),v(2,3),v(1,4)).\quad$ ET CETERA.
Now concatenate all the $A^v(k)$ together into one sequence $A^v(1)\land A^v(2)\land A^v(3)\land ....$. Denote this sequence as $(v^*(m))_{m\in \Bbb N}$. Finally let $$g(v)=\sum_{m=1}^{\infty}v^*(m)2^{-m}.$$
Since $v(n)\ne 0$ for any $n\in \Bbb N$ there exists $m$ with $v^*(m)\ne 0$ so $g(v)>0.$ And for any $n$ the set $\{j: v(n,j)=0\}$ is infinite, so $v^*(m)=0$ for infinitely many $m,$ so $g(v)<1.$ So $g(v)\in (0,1)$, as desired.
Finally to show that $g$ is injective: If $g(v_1)=g(v_2)$ then $v^*_1(m)=v^*_2(m)$ for all $m$ . (Because if two base-2 representations represent the same number and each representation has infinitely many $0$'s then they are the SAME representation.) So by the definition of the sequences $v_1^*,v_2^*,$ we have $v_1(n,j)=v_2(n,j)$ for all $n$ and all $j,$ implying $v_1=v_2.$