While this doesn't apply to my present situation, I'm sure we've all been there before. You're a Java developer who's been asked to develop an app in C#, or you're a ASP.NET developer asked to do something in ASP.NET MVC, or a PHP developer with the opportunity to do a Rails or Django site.
Fundamentally, if you're a competent programmer, these sorts of platform shifts shouldn't really be a problem. Given enough time, you can expect to become as proficient as you were on your old platform.
However, if this is a freelance project for a client, does it seem at all unethical to be learning this platform on their dime? Assuming said client doesn't give you an unlimited amount of time to finish the project, there are going to be compromises and possible quality issues due to your inexperience.
That said, you have to start somewhere and not everyone has the luxury of spare time to tinker with new languages/platforms. Sometimes its necessary to just bite the bullet try and plan things intelligently and just get it done and get paid.
Does this seem unethical? Would accepting a lower rate make it more ethical?