When trying to use Arabic characters in the custom field name, it gets converted to question marks. It seems that the field name is being used as the DB key in the plugin, so it doesn't allow non-ASCII characters? If so, can that be changed? I think it's really important for users to be able to use non-ASCII labels for their fields.

Unfortunately this is definitely a problem. The plugin was originally put together for a specific purpose for a project. There was no real consideration of public distribution.
But the fact it now has thousands of active installations leaves me the problem of legacy too. I cannot just update code that will break everyone else's installations.

All that being said, I would have thought that saving and displaying of the correct characters would have more to do with the pages "Content-Type" and the database's character encoding.

I have added this to a list of things to look at, but I am really short on time. I can't promise any resolution any time soon.

If you remember, I was one of the many that were interested in connecting your plugin with Public Uploader.. so I paid for a freelancer to modify Public Uploader plugin for this purpose. I am telling this because I was mainly interested in having translated names (Arabic names) for the front-end form. Because while I can live with ASCII names in my back-end, I cannot provide them as they were for site guests. The freelancer I paid for came up with a simple workaround for it. He simply hardcoded an array for me so I can assign the labels I want for the fields using their keys that were set in the plugin back-end, and then using array items (new labels) for the front-end form.. dirty but works!

By the way, I am waiting for the freelancer response to share the code. I'm pretty sure there are many, like me, that are looking for the same functionality.

I tried contacting the author of the public uploader plugin to get some hooks added but they didn't get back to me. Unfortunately I couldn't see a feasible way to add the functionality without having to modify his plugin, which would mean you can't update it.

I would be keen to see the solution the freelancer came up with, but I'm guessing they would have to change the public uploader code too.

I am actually in a big trouble because of this! I have no idea what was I thinking of, but I've just realized that the same behavior is applicable to the field values! GOD.. how stupid I am! :D Well, that actually makes the workaround of the freelancer that I mentioned previously completely useless!

shauno, I really know you're busy, but I would be so thankful if you could direct me to any workaround.. even if I have to directly editing the plugin files, I would still be interested. I have to complete the project ASAP!

I am not even 100% sure of the problem. WP uses UTF-8 encoding for the backend. I am not sure if the characters you are trying to use are supported by that?
My guess is it is the database encoding. I am not too familiar with character sets and encoding, but it really is something I should look into.

Can you just give me an example of some of the text you are trying to use?

So I just looked a little harder, and it seems that NGG custom fields is not forcing UTF8 for its tables. I had assumed WP would force the correct encoding type, but it doesn't.
It does provide constants to use when building the tables, but I had overlooked them.

I am not sure how changing the encoding with existing data will affect the database. I need to run some tests on old data to be sure I don't screw the thousands of existing users happy with simple latin encoding.

I will look into this ASAP, as it does need fixing. Hopefully I have something for testing ready in a couple days.

Make sure to deactivate and re-activate the plugin so it can alter the database tables accordingly.

Please let me know if it works.

(PS, this version also fixes some issues with apostrophes, so if you have quotes or slashes saved in field names or values, they may appear with an extra backslash. I plan on writing a patch for the actual release to fix those fields automatically)