Q:

How to draw a picture by using tikz as backgroud of a character?

I am writing some Chinese character and hope to draw simple pictures by tikz and use it as background of this chinese characters. In a short I'd like to get some results as this picture (ignore the lower right noise):

How could I do? Thanks in advance. As an example for least workable code:
\documentclass{article}
\usepackage[CJKnumber]{xeCJK}
\setmainfont{KaiTi}

\begin{document}
\Huge 明月出天山
\end{document}

A:

The Basic grid behing the character is shown, also there is a new command added \Grid{}, to insert the needed glyph inside a specific grid:
\documentclass{article}
\usepackage{xeCJK}
\usepackage{tikz}
\setCJKmainfont{KaiTi}
%
\newcommand\Grid[1]{%
 \tikz[baseline=(char.base)]{%
  \draw[xstep=1ex,ystep=1ex,help lines] (-1ex,-1ex) grid (1ex,1ex);
  \node[inner sep=0pt] (char) at (0,0) {#1};
 }%
}
%
\begin{document}
%
\Huge 明月出天山
%
\Huge 明月出天\Grid{山}
%
\end{document}

The output is as follows:

Update
If a more nested grid is needed, one could apply a new parameter to the definition of \Grid{<step>}{<glyph>}, so modifing the command as:
\newcommand\Grid[2]{%
 \tikz[baseline=(char.base)]{%
  \draw[xstep=#1 ex,ystep=#1 ex,help lines] (-1ex,-1ex) grid (1ex,1ex);
  \node[inner sep=0pt] (char) at (0,0) {#2};
 }%
}

Gives for \Grid{1}{山} and \Grid{0.5}{山}:

A:

Using Andrea L. and Gonzalo Medina's solution we may get weird result of CJK puncuations. There are some problems in the previous solutions:

The position of grid should be relative to the base point of the character. 
The width and height of the grid should be both 1em, not 2ex (characters are square in most CJK fonts).
The grids should be aligned.
The bounding box of the picture should be slightly smaller than the grid lines, since the line width is not ignorable.

PGFTricks's solution may be also problematic about puctuations.
Here is an improved version of Andrea's solution which carefully handles the depth of the glyphs and the bounding box.
\documentclass{article}

\usepackage{xeCJK}
\setCJKmainfont{KaiTi}

\usepackage{tikz}

% \grid for a single character
\newcommand\grid[1]{%
\begin{tikzpicture}[baseline=(char.base)]
  \path[use as bounding box]
    (0,0) rectangle (1em,1em);
  \draw[help lines,step=0.5em]
    (0,0) grid (1em,1em);
  \draw[help lines,dashed]
    (0,0) -- (1em,1em)  (0,1em) -- (1em,0);
  \node[inner sep=0pt,anchor=base west]
    (char) at (0em,\gridraiseamount) {#1};
\end{tikzpicture}}

% \gridraiseamount is a font-specific value
\newcommand\gridraiseamount{0.12em}

% \Grid for a CJK string
\makeatletter
\newcommand\Grid[1]{%
  \@tfor\z:=#1\do{\grid{\z}}}
\makeatother

\begin{document}

\Huge
\xeCJKsetup{PunctStyle=plain}

明月出天山，苍茫云海间。

\Grid{明月出天山，苍茫云海间。}

% We use a dash to test \gridraiseamount
\grid{—}

\end{document}

A:

With PSTricks.
Version 1
\documentclass[pstricks]{standalone}
\usepackage{CJKutf8}
\usepackage[overlap,CJK]{ruby}

\newpsstyle{gridstyle}{gridlabels=0pt,subgriddiv=1,gridcolor=lightgray}

\renewcommand\rubysep{-0.1ex}
\newsavebox\IBox

\newcommand\prepare[2][10]{\sbox\IBox{\raisebox{\depth}{\psscalebox{#1}{#2}}}}

\begin{document}
\begin{CJK*}{UTF8}{min}
\prepare{\ruby{忍}{にん}\ruby{者}{じゃ}}
\psset{xunit=\dimexpr\wd\IBox/2,yunit=\dimexpr\ht\IBox/2}
\begin{pspicture}[showgrid](2,2)
    \rput[bl](0,0){\usebox\IBox}
\end{pspicture}
\end{CJK*}
\end{document}

Version 2
\documentclass[pstricks]{standalone}
\usepackage{CJKutf8}
\usepackage[overlap,CJK]{ruby}

\newpsstyle{gridstyle}{gridlabels=0pt,subgriddiv=1,gridcolor=lightgray}

\renewcommand\rubysep{-0.1ex}
\newsavebox\IBox

\newcommand\prepare[2][10]{\sbox\IBox{\raisebox{\depth}{\psscalebox{#1}{#2}}}}

\begin{document}
\begin{CJK*}{UTF8}{min}
%\prepare{\ruby{忍}{にん}\ruby{者}{じゃ}}
\prepare[15]{犬}
\psset{xunit=\dimexpr\wd\IBox/2,yunit=\dimexpr\ht\IBox/2,linecolor=lightgray}
\begin{pspicture}[showgrid](2,2)
    \psline(2,0)(0,2)
    \psline(2,2)
    \rput[bl](0,0){\usebox\IBox}
\end{pspicture}
\end{CJK*}
\end{document}

