[ https://issues.apache.org/jira/browse/LOGCXX-369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14211329#comment-14211329 ]
Sergiy Tkachuk commented on LOGCXX-369: --------------------------------------- I have the same issue if I have Ukrainian chars in user name. I have issues with the expanding following line in *log4cxx.config*: {code:xml} <param name="file" value="${LOCALAPPDATA}\MyProduct\log4cxx.txt" /> {code} I used VS2010. > Load Properties File Fails When There Are multibyte Characters in the Path > -------------------------------------------------------------------------- > > Key: LOGCXX-369 > URL: https://issues.apache.org/jira/browse/LOGCXX-369 > Project: Log4cxx > Issue Type: Bug > Components: Configurator > Affects Versions: 0.10.0 > Environment: Windows XP SP2 > VC8.0SP1 > Reporter: Starwalker > Assignee: Curt Arnold > > Load properties file fails when calling PropertyConfigurator::configure using > a MBCS string which type is char * or std::string and contains multibyte > characters, such as Chinese characters. > Analyse > When calling PropertyConfigurator::configure using a MBCS string which type > is char * or std::string, the constructor of File will call > Transcoder::decode to convert MBCS string to DBCS string. When meets the byte > which is greater than or equal to 0x80, the function will call > MbstowcsCharsetDecoder::decode to process the following characters. But there > is an error in MbstowcsCharsetDecoder::decode when calculating the offset > after calling mbsrtowcs. > size_t converted = mbsrtowcs(buf, // This function returns the number > of wide characters, maybe not equal to the number of the bytes of multibyte > characters > &src, > requested, > &mbstate); > if (converted == (size_t) -1) { > stat = APR_BADARG; > in.position(src - in.data()); > break; > } else { > stat = append(out, buf); > in.position(in.position() + converted); // Here, the number of the > bytes of multibyte characters should be added, not the number of wide > characters > } > The path "D:\Temp\中文文件夹\STC\Config\Log.properties" becomes > "D:\Temp\中文文件夹\STC\Config\Log.propertiesrties" after convertion. > There are 10 bytes for the 5 Chinese characters, but only 5 wide characters. > Because the error above, last 5 characters repeated. -- This message was sent by Atlassian JIRA (v6.3.4#6332)