I am able to publish component with 3454 bytes (thai language around 1384 characters) but fails if text is more than a certain bytes. Client has asked for the exact byte or character limit.
As Nuno already comments on your question, there's no specific limit on RTF fields... There are other limits that can come sometimes into play though.
Looking at my test server, which is running SDL Tridion 2013 SP1 using SQL Server 10.50.4033.0 for the databases.
RTF fields can be used in either Content or Custom Metadata.
If used in Content, then the Rich Text is embedded within the entire Component's XML. This is stored in a database column defined as nvarchar(max). A quick Google suggests that the limit for this field is 2^31-1 bytes (2 GB). Metadata is stored as an XML data type and another quick Google suggests that this is also capped at 2GB, so overall I don't think you'll have any CM side issues.
When rendering your pages and components, you are free to do whatever you want with the rich text. You might not even use it at all in some templates. Ultimately any content you use will increase the size of the rendered pages, components etc. and that will increase the size of the transport package. This can sometimes be rejected by the receiver (FTP server, IIS etc.) and limits need to be increased.
Lastly, Custom metadata is also sent to the deployer whether you have used it in templating or not. Custom Metadata will increase the size of your transport package, as it will be stored in your Content Delivery Data Store for querying via the Content Delivery APIs. If your Content Delivery Data store is configured a SQL Server database, for example, then a Rich Text field will be stored in a column defined as nvarchar(3400). I think this is the reason why your publish job is failing - You have exceeded this limit.
Metadata is designed to be queried via the Content Delivery APIs. It is not meant to be taken literally as "web page metadata". Content that is just meant to be output in the
<head> section of your HTML doesn't need to be metadata in Tridion, it can be a regular content field. If this metadata is attributed to a page rather than a specific component, then a commonly used pattern is to have "Page Metadata" components added to the page's component presentations or linked to from page metadata. This also carries the benefit that you can localise the page without breaking the link to authored meta content.