Sponsored Content
Top Forums Programming How will the behaviour of multibyte char differ because of different LC_CTYPE locale? Post 302509538 by baig_1988 on Thursday 31st of March 2011 03:45:17 AM
Old 03-31-2011
I am calculating the length of strings and substracting one from another.
For calculating length mbrlen() function is used, is it this function which is causing the problem in diff. locales.

How can i make my function return same value in both platforms?

@DGPickett : Are my characters getting in high bit which is creating problem?
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

split string with multibyte delimiter

Hi, I need to split a string, either using awk or cut or basic unix commands (no programming) , with a multibyte charectar as a delimeter. Ex: abcd-efgh-ijkl split by -efgh- to get two segments abcd & ijkl Is it possible? Thanks A.H.S (1 Reply)
Discussion started by: azmathshaikh
1 Replies

2. Shell Programming and Scripting

Multibyte characters to ASCII

Hello, Is there any UNIX utility/command/executable that will convert mutlibyte characters to standard single byte ASCII characters in a given file? and Is there any UNIX utility/command/executable that will recognize multibyte characters in a given file name? The typical multibyte... (8 Replies)
Discussion started by: jerardfjay
8 Replies

3. Shell Programming and Scripting

PHP: preg_match_all with multibyte characters?

Hi! I'm trying to separate text into sentences, like this: $pattern = "/(|]|,)**/"; preg_match_all($pattern, $text, $matches); This works fine unless the text contains multibyte characters, like "åäö". How can I make this work with these exotic characters? (2 Replies)
Discussion started by: Ilja
2 Replies

4. Shell Programming and Scripting

PHP: preg_match_all with multibyte characters?

Hi! I'm trying to separate text into sentences, like this: $pattern = "/(|]|,)**/"; preg_match_all($pattern, $text, $matches); This works fine unless the text contains multibyte characters, like "åäö". How can I make this work with these exotic characters? An example phrase that doesn't match:... (1 Reply)
Discussion started by: Ilja
1 Replies

5. Shell Programming and Scripting

sftp file size differ

Hi, I have one doubt over sftp. I am trnasferring a file from server1 to server2 using sftp. The size of the file shows different in file 1 and file2 after sftp even though it shows same number of byte transferred. I don't understand the problem. For example: I have file1 having size... (3 Replies)
Discussion started by: siba.s.nayak
3 Replies

6. Programming

error: invalid conversion from ‘const char*’ to ‘char*’

Compiling xpp (The X Printing Panel) on SL6 (RHEL6 essentially): xpp.cxx: In constructor ‘printFiles::printFiles(int, char**, int&)’: xpp.cxx:200: error: invalid conversion from ‘const char*’ to ‘char*’ The same error with all c++ constructors - gcc 4.4.4. If anyone can throw any light on... (8 Replies)
Discussion started by: GSO
8 Replies

7. Shell Programming and Scripting

Store user input in differ

Hello all Can anyone help me to solve the below issue I want to take user input with space separated .The number of inputs can be variable like if user inputs 1 2 3 4 ouput will stored in as array a where i=4 and I can retreive the value like a =3 any thoughts how to do it ... (2 Replies)
Discussion started by: Pratik4891
2 Replies

8. Shell Programming and Scripting

List the file names that differ

Hello, I have two directories - prev and current . They both have same multiple subdirectories and files. Now the current directory can have some updated files and some new files added that is not in prev. I want to find the list of file names that differ. I am doing this because i can not... (2 Replies)
Discussion started by: jakSun8
2 Replies

9. Shell Programming and Scripting

User switching without carrying over LC_CTYPE env variable

I am using Solaris8, userA's shell '/usr/ace/prog/sdshell', AppuserB's shell '/bin/ksh'. serverT:/home/userA>LC_CTYPE=iso_8859_1; export LC_CTYPE; vtemp='userA variable'; export vtemp serverT:/home/userA>echo "LC_CTYPE=$LC_CTYPE, vtemp=$vtemp"; LC_CTYPE=iso_8859_1, vtemp=userA... (4 Replies)
Discussion started by: kchinnam
4 Replies

10. Shell Programming and Scripting

Positional insertion for multibyte characters

Hi I have a requirement to insert a dot "." after a position in each line, say 110th position. For which, I have written the below command. cat filename | sed 's/./&\./110' > new_filename The code is working fine, but when we have multi byte (2 or 3) characters in the input file, the... (3 Replies)
Discussion started by: tostay2003
3 Replies
RUNE(3) 						   BSD Library Functions Manual 						   RUNE(3)

NAME
setrunelocale, setinvalidrune, sgetrune, sputrune, fgetrune, fungetrune, fputrune -- rune support for C LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <rune.h> #include <errno.h> int setrunelocale(char *locale); void setinvalidrune(rune_t rune); rune_t sgetrune(const char *string, size_t n, char const **result); int sputrune(rune_t rune, char *string, size_t n, char **result); #include <stdio.h> long fgetrune(FILE *stream); int fungetrune(rune_t rune, FILE *stream); int fputrune(rune_t rune, FILE *stream); DESCRIPTION
The 4.4BSD ``rune'' functions have been deprecated in favour of the ISO C99 extended multibyte and wide character facilities and should not be used in new applications. Consider using setlocale(3), mbrtowc(3), wcrtomb(3), fgetwc(3), ungetwc(3), and fputwc(3) instead. The setrunelocale() controls the type of encoding used to represent runes as multibyte strings as well as the properties of the runes as defined in <ctype.h>. The locale argument indicates which locale to load. If the locale is successfully loaded, 0 is returned, otherwise an errno value is returned to indicate the type of error. The setinvalidrune() function sets the value of the global value _INVALID_RUNE to be rune. The sgetrune() function tries to read a single multibyte character from string, which is at most n bytes long. If sgetrune() is successful, the rune is returned. If result is not NULL, *result will point to the first byte which was not converted in string. If the first n bytes of string do not describe a full multibyte character, _INVALID_RUNE is returned and *result will point to string. If there is an encoding error at the start of string, _INVALID_RUNE is returned and *result will point to the second character of string. the sputrune() function tries to encode rune as a multibyte string and store it at string, but no more than n bytes will be stored. If result is not NULL, *result will be set to point to the first byte in string following the new multibyte character. If string is NULL, *result will point to (char *)0 + x, where x is the number of bytes that would be needed to store the multibyte value. If the multibyte character would consist of more than n bytes and result is not NULL, *result will be set to NULL. In all cases, sputrune() will return the number of bytes which would be needed to store rune as a multibyte character. The fgetrune() function operates the same as sgetrune() with the exception that it attempts to read enough bytes from stream to decode a sin- gle rune. It returns either EOF on end of file, _INVALID_RUNE on an encoding error, or the rune decoded if all went well. The fungetrune() function pushes the multibyte encoding, as provided by sputrune(), of rune onto stream such that the next fgetrune() call will return rune. It returns EOF if it fails and 0 on success. The fputrune() function writes the multibyte encoding of rune, as provided by sputrune(), onto stream. It returns EOF on failure and 0 on success. RETURN VALUES
The setrunelocale() function returns one of the following values: 0 The setrunelocale() function was successful. [EINVAL] The locale name was incorrect. [ENOENT] The locale could not be found. [EFTYPE] The file found was not a valid file. The sgetrune() function either returns the rune read or _INVALID_RUNE. The sputrune() function returns the number of bytes needed to store rune as a multibyte string. FILES
$PATH_LOCALE/locale/LC_CTYPE /usr/share/locale/locale/LC_CTYPE binary LC_CTYPE file for the locale locale. /usr/local/share/locale/locale/LC_CTYPE binary LC_CTYPE file for the locale locale. SEE ALSO
mbrune(3), setlocale(3), euc(4), utf2(4), utf8(5) HISTORY
These functions first appeared in 4.4BSD. The setrunelocale() function and the other non-ANSI rune functions were inspired by Plan 9 from Bell Labs. BSD
October 6, 2002 BSD
All times are GMT -4. The time now is 08:32 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy