[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Convert utf8 string to iso8859-1 (Latin1)
- From: Coda Highland <chighland@...>
- Date: Wed, 11 Feb 2015 13:30:56 -0800
On Wed, Feb 11, 2015 at 1:28 PM, Coda Highland <chighland@gmail.com> wrote:
> On Wed, Feb 11, 2015 at 11:47 AM, Christian <cn00@gmx.at> wrote:
>>
>> On 2015-02-11 20:29 Sean Conner wrote:
>>>
>>> It was thus said that the Great Igor Medeiros once stated:
>>>>
>>>> Dear contributors,
>>>>
>>>> Is there a way to covert a string whose characters are encoded in utf8,
>>>> to
>>>> a string with characters encoded in iso-8859-1, just using lua standard
>>>> libs? I cannot use libs with C codes.
>>>>
>>>> If there is, could you tell me how to do that or even point some site
>>>> with
>>>> this information?
>>>
>>> I don't know of any existing Lua code to do this, but the concept is
>>> straightforward:
>>>
>>> 1. convert UTF-8 sequence to a Unicode codepoint
>>> (http://en.wikipedia.org/wiki/UTF-8)
>>>
>>> 2. Convert the Unicode codepoint
>>> (http://www.unicode.org/Public/UCD/latest/charts/CodeCharts.pdf
>>> WARNING:
>>> LARGE PDF) to ISO-8859-1 codepoint
>>> (http://en.wikipedia.org/wiki/ISO/IEC_8859-1)
>>>
>>> 3. Go back to step 1 if more data.
>>>
>>> -spc (That should be enough to get you going ... )
>>>
>>>
>>
>> Actually, the Latin 1 subset of unicode has the same codepoints as Latin1.
>> It's just that UTF-8 is a different encoding. The following suffices to do
>> the conversion with Lua 5.3:
>>
>> function utf8_to_latin1(s)
>> local r = ''
>> for _, c in utf8.codes(s) do
>> r = r .. string.char(c)
>> end
>> return r
>> end
>>
>>
>> HTH, Christian
>>
>
> This assumes string.char() is Latin-1. Is this always true or is it
> dependent on the system locale?
>
> /s/ Adam
Wait. Disregard this. I wasn't thinking; this isn't a problem after
all. :P Derp.
/s/ Adam