Help to Convert file from UNIX UTF-8 to Windows UTF-16


 
Thread Tools Search this Thread
Operating Systems Linux Help to Convert file from UNIX UTF-8 to Windows UTF-16
# 1  
Old 01-30-2014
Help to Convert file from UNIX UTF-8 to Windows UTF-16

Hi,

I have tried to convert a UTF-8 file to windows UTF-16 format file as below from unix machine

Code:
unix2dos < testing.txt | iconv -f UTF-8 -t UTF-16 > out.txt

and i am getting some chinese characters as below which l opened the converted file on windows machine.

Code:
LANG=en_US.UTF-8
਍䰀䌀开䌀吀夀倀䔀㴀∀攀渀开唀匀⸀唀吀䘀ⴀ㠀∀ഀഀ
LC_NUMERIC="en_US.UTF-8"
਍䰀䌀开吀䤀䴀䔀㴀∀攀渀开唀匀⸀唀吀䘀ⴀ㠀∀ഀഀ
LC_COLLATE="en_US.UTF-8"
਍䰀䌀开䴀伀一䔀吀䄀刀夀㴀∀攀渀开唀匀⸀唀吀䘀ⴀ㠀∀ഀഀ
LC_MESSAGES="en_US.UTF-8"
਍䰀䌀开倀䄀倀䔀刀㴀∀攀渀开唀匀⸀唀吀䘀ⴀ㠀∀ഀഀ
LC_NAME="en_US.UTF-8"
਍䰀䌀开䄀䐀䐀刀䔀匀匀㴀∀攀渀开唀匀⸀唀吀䘀ⴀ㠀∀ഀഀ
LC_TELEPHONE="en_US.UTF-8"
਍䰀䌀开䴀䔀䄀匀唀刀䔀䴀䔀一吀㴀∀攀渀开唀匀⸀唀吀䘀ⴀ㠀∀ഀഀ
LC_IDENTIFICATION="en_US.UTF-8"
਍䰀䌀开䄀䰀䰀㴀ഀഀ

This is just a test file i was working on but the actual file contains numbers of rows and columns. Am i missing anything above up here?

The requirements are for the output should be as below

- UTF-16 Little endian
- preceded with a byte order marker --ff and fe
- Windows line endings

Any pointers will be great

Thanks,
P

Last edited by phanidhar6039; 01-30-2014 at 09:35 AM.. Reason: More info
# 2  
Old 02-04-2014
Usually all the file transferred should be binary format so that nothing can be changed so that we don’t get any unknown characters

Let us consider the file name as Orgdata_UTF8.txt then output file as Orgdata.txt
Code:
unix2dos < Orgdata_UTF8.txt |iconv -f UTF-8 -t UTF-16LE>Orgdata.txt

As some systems add the BOM by default and some systems doesn’t add the BOM based on the operating systems and it is also the similar case with UTF-16LE format as it is sometimes recognised as UTF-16 and some as UTF-16LE based on versions and use them as needed.

Adding BOM manually

Create a new file as below Orgdata.txt and check the file type using file command to confirm that it is UTF-16LE format and then convert it as below

Code:
printf "\xff\xfe" > Orgdata.txt
file Orgdata.txt 
unix2dos < Orgdata_UTF8.txt |iconv -f UTF-8 -t UTF-16LE>>Orgdata.txt

Use the hex coder to check if you have got the desired result of ff fe or not. This result varies depending on the type of hexdump used.
Code:
cat Orgdata.txt |hexdump |less  -- this shows as fe ff          
xxd < Orgdata.txt |less              -- same file shows as ff fe

Code:
cat -vT Orgdata.txt

In reality both of them are same as one of them shows the reversing output.

This has resolved my issue
# 3  
Old 02-04-2014
iconv and BOMs are a gray area in the Unicode specification. A useful discussion regarding iconv and presence or lack of a BOM is here
# 4  
Old 02-04-2014
Thanks for the reply fpmurphy. I have already gone thru that link in getting the desired result.

Anyway thanks for the help.

Thanks,
P
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Convert files to UTF-8 on AIX 7.1

Dears, I have a shell script - working perfectly on Oracle Linux - that detects the encoding (the charset to be exact) of the files in a specified directory using the "file" command (The file command outputs the charset in Linux, but doesn't do that in AIX), then if the file isn't a UTF-8 text... (4 Replies)
Discussion started by: JeanM-1
4 Replies

2. Shell Programming and Scripting

Convert UTF-8 file to ASCII/ISO8859-1 OR replace characters

I am trying to develop a script which will work on a source UTF-8 file and perform one or more of the following It will accept the target encoding as an argument e.g. US-ASCII or ISO-8859-1, etc 1. It should replace all occurrences of characters outside target character set by " " (space) or... (3 Replies)
Discussion started by: hemkiran.s
3 Replies

3. Shell Programming and Scripting

Copying a file with UTF char on UNIX server

Hi, I need to run a SQL which check for special UTF char in DB. When I try to copy that in UNIX file it changes it to some wierd chat. How can in retain the UTF chars in my script? e.g. ο|π|ρ|σ|τ|υ|φ|χ|ψ Any help will be appriciated. Thanks, (14 Replies)
Discussion started by: varun22486
14 Replies

4. Shell Programming and Scripting

Trying to convert utf-8 to WINDOWS-1251

Hello all i have utf-8 file that i try to convert to WINDOWS-1251 on linux without any success the file name is utf-8 when i try to do : file -bi test.txt it gives me : text/plain; charset=utf-8 when i try to convert the file i do : /usr/bin/iconv -f UTF-8 -t WINDOWS-1251 test.txt >... (1 Reply)
Discussion started by: umen
1 Replies

5. UNIX for Dummies Questions & Answers

Issue with UTF-8 BOM character in text file

Sometimes we recieve some excel files containing French/Japanese characters over the mail, and these files are manually transferred to the server by using SFTP (security is not a huge concern here). The data is changed to text format before transferring it using Notepad. Problem is: When saving... (4 Replies)
Discussion started by: jawsnnn
4 Replies

6. Red Hat

Can't convert 7bit ASCII to UTF-8

Hello, I am trying to convert a 7bit ASCII file to UTF-8. I have used iconv before though it can't recognize it for some reason and says unknown file encoding. When I used ascii2uni package with different package, ./ascii2uni -a K -a I -a J -a X test_file > new_test_file It still... (2 Replies)
Discussion started by: rockf1bull
2 Replies

7. UNIX for Advanced & Expert Users

UTF-8 to EBCDIC conversion in UNIX

Hi all, At present a file from AS400 system is being FTPed to an AIX system. Now, a similar file needs to be sent from our Unix box (Solaris) Is there any tool available which does the conversion in Unix from UTF-8 to EBCDIC? Any suggestions/ pointers are really appreciated. Thanks,... (4 Replies)
Discussion started by: sridhar_423
4 Replies

8. UNIX for Advanced & Expert Users

Convert UTF-8 encoded hex value to a character

Hi, I have a non-ascii character (Ŵ), which can be represented in UTF-8 encoding as equivalent hex value (\xC5B4). Is there a function in unix to convert this hex value back to display the charcter ? (10 Replies)
Discussion started by: sumirmehta
10 Replies

9. UNIX for Dummies Questions & Answers

grep and UNICODE (utf-16) file

I'm using shell scripting in Applescript. When searching a file with the ANSEL character set (for GEDCOM files) using (grep '1 CHAR ANSEL' filepath) gives the expected result. When searching a UNICODE formatted file (utf-16), searching for text known to exist in the file using (grep '1 CHAR... (4 Replies)
Discussion started by: Whiterock
4 Replies

10. Programming

Howto convert Ascii -> UTF-8 & back C++

While working with russian text under FreeBSD&MySQL I need to convert a string from MySQL to the Unicode format. I've just started my way in C++ under FreeBSD , so please explain me how can I get ascii code of Char variable and also how can i get a character into variable with the specified ascii... (3 Replies)
Discussion started by: macron
3 Replies
Login or Register to Ask a Question