surface shader using alphatest has problem with RenderTexture, alpha is lost after using alphatest

i want to show a character model to ui, but found the hair part of character is missing.
The character’s hair is using a surface shader with alphatest:_Cutoff. However i look to the camera’s targetTexture(using RenderTexture), i found that the alpha of hair part is all 0. And so that when i set this renderTexture to a NGUI uiTextture(render with a transparent shader whose blend method is SrcAlpha OneMinusSrcAlpha), the hair part of character is missing.
i tried to use alpha:blend in surface shader, and the alpha lost too.
And when i remove alphatest:_Cutoff, the alpha is not missing, but the effect of hair is not what i wanted.

So, is there a simple way to keep alpha after alphatest, or is there one way to discard pixels except alphatest?

You can discard pixels in shader with:

clip(myTexture.a - _MyCutoff);

or

if (myTexture.a < _MyCutoff) 
{
    discard; 
}

or (Android friendly I think)

if (myTexture.a < _MyCutoff)
{
   myTexture.a = 0;
}