<div dir="ltr"><div>The following complete program runs properly for me on OSX.  I'm referring to the file that you provided earlier.</div><div><br></div><div>======</div><div><br></div><div><div>master $ DYLD_LIBRARY_PATH=./lib a.out</div><div>View size = 867!</div><div>X/Y/Z = 0.00472708/0.0012/-0.000833515!</div><div>X/Y/Z = 0.0048/0.0012/0!</div><div>X/Y/Z = 0/0/0!</div><div>X/Y/Z = 0.00451052/0.0012/-0.0016417!</div><div>X/Y/Z = 0.00415692/0.0012/-0.00240001!</div><div>X/Y/Z = 0.00367701/0.0012/-0.00308539!</div><div>X/Y/Z = 0.00308537/0.0012/-0.00367702!</div><div>X/Y/Z = 0.00239999/0.0012/-0.00415693!</div><div>X/Y/Z = 0.00164168/0.0012/-0.00451053!</div><div>X/Y/Z = 0.000833496/0.0012/-0.00472708!</div><div>X/Y/Z = -1.79482e-08/0.0012/-0.0048!</div><div>X/Y/Z = -0.00083353/0.0012/-0.00472707!</div><div>X/Y/Z = -0.00164172/0.0012/-0.00451052!</div><div>X/Y/Z = -0.00240002/0.0012/-0.00415691!</div><div>X/Y/Z = -0.0030854/0.0012/-0.003677!</div><div>X/Y/Z = -0.00367703/0.0012/-0.00308536!</div><div>X/Y/Z = -0.00415694/0.0012/-0.00239997!</div><div>X/Y/Z = -0.00451054/0.0012/-0.00164167!</div></div><div><br></div><div>==========</div><div><br></div><div>#include <pdal/StageFactory.hpp></div><div>#include <pdal/Options.hpp></div><div>#include <pdal/PointTable.hpp></div><div>#include <pdal/PDALUtils.hpp></div><div><br></div><div>int main()</div><div>{</div><div>  using namespace pdal;</div><div><br></div><div>  pdal::StageFactory factory;</div><div><br></div><div>  pdal::PointTable table;</div><div><br></div><div>    std::string filename(u8"/Users/acbell/Downloads/рфддвбс.ply");</div><div>  std::string sReaderDriver = pdal::StageFactory::inferReaderDriver(filename);</div><div><br></div><div>  if (!sReaderDriver.empty())</div><div><br></div><div>  {</div><div><br></div><div>    pdal::Stage *pReader = factory.createStage(sReaderDriver);</div><div><br></div><div>    pdal::Options readerOptions;</div><div><br></div><div>    readerOptions.add("filename", filename);</div><div><br></div><div>    if (pReader)</div><div><br></div><div>    {</div><div><br></div><div>      pReader->setOptions(readerOptions);</div><div>      pReader->prepare(table);</div><div>      PointViewSet s = pReader->execute(table);</div><div>      PointViewPtr v = *s.begin();</div><div><br></div><div>      std::cerr << "View size = " << v->size() << "!\n";</div><div>      for (PointId id = 0; id < v->size(); ++id)</div><div>          std::cerr << "X/Y/Z = " <<</div><div>            v->getFieldAs<double>(Dimension::Id::X, id) << "/" <<</div><div>            v->getFieldAs<double>(Dimension::Id::Y, id) << "/" <<</div><div>            v->getFieldAs<double>(Dimension::Id::Z, id) << "!\n";</div><div>    }</div><div>  }</div><div><br></div><div>  return 0;</div><div><br></div><div>}</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 17, 2018 at 9:33 AM,  <span dir="ltr"><<a href="mailto:pidgeon13@googlemail.com" target="_blank">pidgeon13@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-GB" link="blue" vlink="#954F72"><div class="m_-6161806721543696257WordSection1"><p class="MsoNormal">The following code is such an example.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">int main(</p><p class="MsoNormal">{</p><p class="MsoNormal">  pdal::StageFactory factory;</p><p class="MsoNormal">  pdal::PointTable table;</p><p class="MsoNormal">  std::string sReaderDriver = pdal::StageFactory::<wbr>inferReaderDriver(u8"C:\\<wbr>Users\\stephenp\\PDALe\\<wbr>рфддвбс.ply");</p><p class="MsoNormal">  if (!sReaderDriver.empty())</p><p class="MsoNormal">  {</p><p class="MsoNormal">    pdal::Stage *pReader = factory.createStage(<wbr>sReaderDriver);</p><p class="MsoNormal">    pdal::Options readerOptions;</p><p class="MsoNormal">    readerOptions.add("filename", u8"C:\\Users\\stephenp\\PDALe\<wbr>\рфддвбс.ply");</p><p class="MsoNormal">    if (pReader)</p><p class="MsoNormal">    {</p><p class="MsoNormal">      pReader->setOptions(<wbr>readerOptions);</p><p class="MsoNormal">      pdal::PointViewSet set;</p><p class="MsoNormal">      pdal::PointViewPtr pView;</p><p class="MsoNormal">      pReader->prepare(table);</p><p class="MsoNormal">      set = pReader->execute(table);</p><p class="MsoNormal">      pView = *set.begin();</p><p class="MsoNormal">      int nSize = pView->size();</p><p class="MsoNormal">      std::cerr << Utils::toJSON(pReader-><wbr>getMetadata());</p><p class="MsoNormal">    }</p><p class="MsoNormal">  }</p><p class="MsoNormal">  return 0;</p><span class=""><p class="MsoNormal">}</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Regards,</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Stephen</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a> for Windows 10</p><p class="MsoNormal"><u></u> <u></u></p></span><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal" style="border:none;padding:0cm"><b>From: </b><a href="mailto:andrew.bell.ia@gmail.com" target="_blank">Andrew Bell</a><br><b>Sent: </b>17 January 2018 13:50<br><b>To: </b><a href="mailto:pidgeon13@googlemail.com" target="_blank">Stephen Pidgeon</a><br><b>Cc: </b><a href="mailto:mateusz@loskot.net" target="_blank">Mateusz Loskot</a>; <a href="mailto:pdal@lists.osgeo.org" target="_blank">pdal@lists.osgeo.org</a></p><div><div class="h5"><br><b>Subject: </b>Re: [pdal] Non-English characters</div></div><p></p></div><div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">I still haven't seen code that shows a UTF-8 string being passed to PDAL as a filename and PDAL failing to handle it.  Something like this would help:</p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">void main()</p></div><div><p class="MsoNormal">{</p></div><div><p class="MsoNormal">  LasReader r;</p></div><div><p class="MsoNormal">  Options ro;</p></div><div><p class="MsoNormal">  ro.add("filename", "some filename that causes a problem")</p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">  PointTable t;</p></div><div><p class="MsoNormal">  r.prepare(t);</p></div><div><p class="MsoNormal">  r.execute(t);</p></div><div><p class="MsoNormal">  std::cerr << Utils::toJSON(r.getMetadata())<wbr>;</p></div><div><p class="MsoNormal">}</p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Does something like this fail?  If not, can you provide an example?  I can't help unless I understand the problem.</p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Thanks,</p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">On Wed, Jan 17, 2018 at 5:31 AM, <<a href="mailto:pidgeon13@googlemail.com" target="_blank">pidgeon13@googlemail.com</a>> wrote:</p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm"><div><div><p class="MsoNormal">The two methods are producing the same std::string for me. I’m fairly sure that specifying the code page in CW2A overrides using the ANSI codepage.</p><p class="MsoNormal"> </p><p class="MsoNormal">Regards,</p><p class="MsoNormal"> </p><p class="MsoNormal">STephen</p><p class="MsoNormal"> </p><p class="MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a> for Windows 10</p><p class="MsoNormal"> </p><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0cm 0cm 0cm"><p class="MsoNormal"><b>From: </b><a href="mailto:mateusz@loskot.net" target="_blank">Mateusz Loskot</a><br><b>Sent: </b>17 January 2018 10:21</p><div><div><p class="MsoNormal"><br><b>To: </b><a href="mailto:pidgeon13@googlemail.com" target="_blank">pidgeon13@googlemail.com</a><br><b>Cc: </b><a href="mailto:andrew.bell.ia@gmail.com" target="_blank">Andrew Bell</a>; <a href="mailto:pdal@lists.osgeo.org" target="_blank">pdal@lists.osgeo.org</a><br><b>Subject: </b>Re: [pdal] Non-English characters</p></div></div></div><div><div><p class="MsoNormal"> </p><p class="MsoNormal">CUtils::toUtf8 looks fine to me</p><p class="MsoNormal"> </p><p class="MsoNormal">On 17 January 2018 at 11:17,  <<a href="mailto:pidgeon13@googlemail.com" target="_blank">pidgeon13@googlemail.com</a>> wrote:</p><p class="MsoNormal">> I have included another piece of code, which is what I tried first using</p><p class="MsoNormal">> WideCharToMultiByte. Should this perform the conversion correctly?</p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> Regards,</p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> Stephen</p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> Sent from Mail for Windows 10</p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> From: Mateusz Loskot</p><p class="MsoNormal">> Sent: 17 January 2018 10:09</p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> To: <a href="mailto:pidgeon13@googlemail.com" target="_blank">pidgeon13@googlemail.com</a></p><p class="MsoNormal">> Cc: Andrew Bell; <a href="mailto:pdal@lists.osgeo.org" target="_blank">pdal@lists.osgeo.org</a></p><p class="MsoNormal">> Subject: Re: [pdal] Non-English characters</p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> See what the docs [1] say about the A in CW2A.</p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> Meanwhile, you need to use WideCharToMultiByte [2] with CP_UTF8 code page.</p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> [1] <a href="https://msdn.microsoft.com/en-us/library/87zae4a3.aspx" target="_blank">https://msdn.microsoft.com/en-<wbr>us/library/87zae4a3.aspx</a></p><p class="MsoNormal">> </p><p class="MsoNormal">> [2] <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130.aspx" target="_blank">https://msdn.microsoft.com/en-<wbr>us/library/windows/desktop/<wbr>dd374130.aspx</a></p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> On 17 January 2018 at 11:02,  <<a href="mailto:pidgeon13@googlemail.com" target="_blank">pidgeon13@googlemail.com</a>> wrote:</p><p class="MsoNormal">> </p><p class="MsoNormal">>> std::string sFilePath = CW2A(filepath, CP_UTF8);</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> Regards,</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> Stephen</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> Sent from Mail for Windows 10</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> From: Mateusz Loskot</p><p class="MsoNormal">> </p><p class="MsoNormal">>> Sent: 17 January 2018 10:00</p><p class="MsoNormal">> </p><p class="MsoNormal">>> To: <a href="mailto:pidgeon13@googlemail.com" target="_blank">pidgeon13@googlemail.com</a></p><p class="MsoNormal">> </p><p class="MsoNormal">>> Cc: Andrew Bell; <a href="mailto:pdal@lists.osgeo.org" target="_blank">pdal@lists.osgeo.org</a></p><p class="MsoNormal">> </p><p class="MsoNormal">>> Subject: Re: [pdal] Non-English characters</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> On 17 January 2018 at 10:31,  <<a href="mailto:pidgeon13@googlemail.com" target="_blank">pidgeon13@googlemail.com</a>> wrote:</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>>> The user browses for a file in a dialog file browser, and I convert this</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>>> string to UTF-8</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> How do you convert to UTF-8?</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> Please, you need to show some code (one image for 1000 words).</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> Best regards,</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> --</p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> Mateusz Loskot, <a href="http://mateusz.loskot.net" target="_blank">http://mateusz.loskot.net</a></p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">>> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal">> --</p><p class="MsoNormal">> </p><p class="MsoNormal">> Mateusz Loskot, <a href="http://mateusz.loskot.net" target="_blank">http://mateusz.loskot.net</a></p><p class="MsoNormal">> </p><p class="MsoNormal">> </p><p class="MsoNormal"> </p><p class="MsoNormal"> </p><p class="MsoNormal"> </p><p class="MsoNormal">-- </p><p class="MsoNormal">Mateusz Loskot, <a href="http://mateusz.loskot.net" target="_blank">http://mateusz.loskot.net</a></p><p class="MsoNormal"> </p></div></div></div></div></blockquote></div><p class="MsoNormal"><br><br clear="all"></p><div><p class="MsoNormal"><u></u> <u></u></p></div><p class="MsoNormal">-- </p></div><p class="MsoNormal">Andrew Bell<br><a href="mailto:andrew.bell.ia@gmail.com" target="_blank">andrew.bell.ia@gmail.com</a></p><p class="MsoNormal"><u></u> <u></u></p></div></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">Andrew Bell<br><a href="mailto:andrew.bell.ia@gmail.com" target="_blank">andrew.bell.ia@gmail.com</a></div>
</div>